Case Backend Plugin:
- If going to frontend leave it encoded
- If going to alerting, decode it
Case Core (Internal) Datasource:
| {"results":{"A":{"refId":"A","series":null,"tables":null,"dataframes":["QVJST1cxAAD/////sBAAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAJQAAAADAAAAVAAAACgAAAAEAAAA3O///wgAAAAMAAAAAQAAAEEAAAAFAAAAcmVmSWQAAAD87///CAAAABQAAAAKAAAAbWFueV90eXBlcwAABAAAAG5hbWUAAAAAJPD//wgAAAAkAAAAGQAAAHsiY3VzdG9tIjp7IkhpIjoidGhlcmUifX0AAAAEAAAAbWV0YQAAAAAdAAAAFA8AANQMAAAYDAAAlAsAACALAACcCgAAKAoAAKQJAAAwCQAArAgAADQIAAC0BwAARAcAAMQGAABUBgAA1AUAAGQFAADkBAAAbAQAAOwDAAB8AwAA/AIAAJgCAAAcAgAAtAEAAEwBAADUAAAAbAAAAAQAAACu8///FAAAAEAAAABAAAAAAAASAUAAAAABAAAABAAAAPTw//8IAAAAFAAAAAgAAABkdXJhdGlvbgAAAAAEAAAAbmFtZQAAAAAAAAAAuvv//wAAAwAIAAAAZHVyYXRpb24AAAAA1vH//xQAAABAAAAAQAAAAAAAABJAAAAAAQAAAAQAAABY8f//CAAAABQAAAAIAAAAZHVyYXRpb24AAAAABAAAAG5hbWUAAAAAAAAAAB78//8AAAMACAAAAGR1cmF0aW9uAAAAAHb0//8UAAAASAAAAEgAAAAAAAoBSAAAAAEAAAAEAAAAvPH//wgAAAAcAAAAEwAAAG51bGxhYmxlX3RpbWVzdGFtcHMABAAAAG5hbWUAAAAAAAAAAIr8//8AAAMAEwAAAG51bGxhYmxlX3RpbWVzdGFtcHMArvL//xQAAABAAAAAQAAAAAAAAApAAAAAAQAAAAQAAAAw8v//CAAAABQAAAAKAAAAdGltZXN0YW1wcwAABAAAAG5h |
| package azuremonitor | |
| import ( | |
| "encoding/json" | |
| "fmt" | |
| "time" | |
| "github.com/grafana/grafana-plugin-sdk-go/data" | |
| ) |
| benchcmp <(/usr/local/go/bin/go test -benchmem -run=^$ github.com/grafana/grafana/pkg/tsdb/azuremonitor -bench '^(BenchmarkOldInsights)$' -v | sed 's/BenchmarkOldInsights/BenchmarkInsightsMetricsResultToFrame/g') <(/usr/local/go/bin/go test -benchmem -run=^$ github.com/grafana/grafana/pkg/tsdb/azuremonitor -bench '^(BenchmarkInsightsMetricsResultToFrame)$' -v) |
| ### | |
| GET http://admin:admin@localhost:3000/api/alert-definitions | |
| ### | |
| @alertId = 16 | |
| ### |
| package main | |
| import ( | |
| "fmt" | |
| "time" | |
| ) | |
| func main() { | |
| utc6 := time.FixedZone("UTC+6", 6*3600) | |
| utc7 := time.FixedZone("UTC+7", 7*3600) |
| POST http://admin:admin@localhost:3000/api/alert-definitions/ | |
| Content-Type: application/json | |
| { | |
| "name": "Example Alert POST", | |
| "condition": { | |
| "refId": "C", | |
| "interval": 10, | |
| "queriesAndExpressions": [ | |
| { |
| { | |
| name: "pending -> error(keep) with for duration have passed", | |
| expected: models.AlertStatePending, | |
| applyFn: func(ec *EvalContext) { | |
| ec.PrevAlertState = models.AlertStatePending | |
| ec.Rule.ExecutionErrorState = models.ExecutionErrorKeepState | |
| ec.Error = errors.New("test error") | |
| ec.Rule.For = time.Minute * 5 | |
| ec.Rule.LastStateChange = time.Now().Add(-time.Minute * 20) | |
| }, |
| "conditions": [ | |
| { | |
| "evaluator": { | |
| "params": [ | |
| 0 | |
| ], | |
| "type": "gt" | |
| }, | |
| "operator": { | |
| "type": "and" |