mirror of
https://github.com/metrico/qryn.git
synced 2025-03-14 10:07:18 +00:00
merge node-clickhouse-sql to alertman
This commit is contained in:
2
cloki.js
2
cloki.js
@ -53,7 +53,7 @@ this.scanClickhouse = DATABASE.scanClickhouse;
|
||||
const fastify = require('fastify')({
|
||||
logger: false,
|
||||
bodyLimit: parseInt(process.env.FASTIFY_BODYLIMIT) || 5242880,
|
||||
requestTimeout: parseInt(process.env.FASTIFY_REQUESTTIMEOUT) || 0,
|
||||
requestTimeout: parseInt(process.env.FASTIFY_REQUESTTIMEOUT) || 0,
|
||||
maxRequestsPerSocket: parseInt(process.env.FASTIFY_MAXREQUESTS) || 0
|
||||
})
|
||||
|
||||
|
@ -80,7 +80,7 @@ class AlertWatcher {
|
||||
async _createViews () {
|
||||
/**
|
||||
*
|
||||
* @type {{query: registry_types.Request, stream: (function(DataStream): DataStream)[]}}
|
||||
* @type {{query: Select, stream: (function(DataStream): DataStream)[]}}
|
||||
*/
|
||||
const query = transpiler.transpileTail({
|
||||
query: this.request,
|
||||
@ -88,7 +88,7 @@ class AlertWatcher {
|
||||
rawRequest: true,
|
||||
suppressTime: true
|
||||
})
|
||||
query.query.order_by = undefined
|
||||
query.query.order_expressions = []
|
||||
return createAlertViews(this.name, query.query)
|
||||
}
|
||||
|
||||
|
@ -34,6 +34,7 @@ const storagePolicy = process.env.STORAGE_POLICY || false
|
||||
const { StringStream, DataStream } = require('scramjet')
|
||||
|
||||
const { parseLabels, hashLabels } = require('../../common')
|
||||
const Sql = require('clickhouse-sql')
|
||||
|
||||
const capabilities = {}
|
||||
let state = 'INITIALIZING'
|
||||
@ -1014,13 +1015,18 @@ module.exports.dropAlertViews = async (name) => {
|
||||
/**
|
||||
*
|
||||
* @param name {string}
|
||||
* @param request {registry_types.Request}
|
||||
* @param request {Select}
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
module.exports.createAlertViews = async (name, request) => {
|
||||
const fp = UTILS.fingerPrint('alert_rule' + name)
|
||||
request.select.push(`coalesce((SELECT max(mark) FROM ${DATABASE_NAME()}._alert_view_${fp}_mark), 0) as mark`)
|
||||
const strRequest = transpiler.requestToStr(request)
|
||||
request.select(
|
||||
[
|
||||
new Sql.Raw(`coalesce((SELECT max(mark) FROM ${DATABASE_NAME()}._alert_view_${fp}_mark), 0)`),
|
||||
'mark'
|
||||
]
|
||||
)
|
||||
const strRequest = request.toString()
|
||||
await axios.post(getClickhouseUrl(),
|
||||
`CREATE TABLE IF NOT EXISTS ${DATABASE_NAME()}._alert_view_${fp}_mark (id UInt8 default 0,mark UInt64) ` +
|
||||
'ENGINE ReplacingMergeTree(mark) ORDER BY id')
|
||||
|
12
package-lock.json
generated
12
package-lock.json
generated
@ -3390,6 +3390,12 @@
|
||||
"statuses": ">= 1.4.0 < 2"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
@ -3402,6 +3408,12 @@
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||
|
@ -155,7 +155,7 @@ module.exports.transpileTail = (request) => {
|
||||
query.orderBy(['timestamp_ms', 'asc'])
|
||||
query.limit(undefined, undefined)
|
||||
return {
|
||||
query: query.toString(),
|
||||
query: request.rawRequest ? query : query.toString(),
|
||||
stream: getStream(query)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user