Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
1418cbbd
Commit
1418cbbd
authored
Aug 15, 2016
by
Torkel Ödegaard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(query_part): refactoring query part
parent
befca9bb
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
80 additions
and
65 deletions
+80
-65
pkg/services/alerting/result_handler.go
+1
-0
pkg/services/annotations/annotations.go
+11
-12
pkg/services/sqlstore/migrations/alert_mig.go
+18
-12
pkg/services/sqlstore/migrations/annotation_mig.go
+1
-4
pkg/services/sqlstore/migrations/heartbeat_mig.go
+16
-0
public/app/core/components/query_part/query_part_editor.ts
+3
-1
public/app/features/alerting/alert_tab_ctrl.ts
+1
-1
public/app/plugins/datasource/influxdb/partials/query.editor.html
+3
-5
public/app/plugins/datasource/influxdb/query_ctrl.ts
+26
-30
No files found.
pkg/services/alerting/result_handler.go
View file @
1418cbbd
...
...
@@ -39,6 +39,7 @@ func (handler *DefaultResultHandler) Handle(ctx *EvalContext) {
}
countSeverity
(
ctx
.
Rule
.
Severity
)
if
ctx
.
Rule
.
State
!=
oldState
{
handler
.
log
.
Info
(
"New state change"
,
"alertId"
,
ctx
.
Rule
.
Id
,
"newState"
,
ctx
.
Rule
.
State
,
"oldState"
,
oldState
)
...
...
pkg/services/annotations/annotations.go
View file @
1418cbbd
...
...
@@ -27,18 +27,17 @@ const (
)
type
Item
struct
{
Id
int64
`json:"id"`
OrgId
int64
`json:"orgId"`
PanelLinkId
string
`json:"panelLinkId"`
Type
ItemType
`json:"type"`
Title
string
`json:"title"`
Text
string
`json:"text"`
Metric
string
`json:"metric"`
AlertId
int64
`json:"alertId"`
UserId
int64
`json:"userId"`
PrevState
string
`json:"prevState"`
NewState
string
`json:"newState"`
Timestamp
time
.
Time
`json:"timestamp"`
Id
int64
`json:"id"`
OrgId
int64
`json:"orgId"`
Type
ItemType
`json:"type"`
Title
string
`json:"title"`
Text
string
`json:"text"`
Metric
string
`json:"metric"`
AlertId
int64
`json:"alertId"`
UserId
int64
`json:"userId"`
PrevState
string
`json:"prevState"`
NewState
string
`json:"newState"`
Timestamp
time
.
Time
`json:"timestamp"`
Data
*
simplejson
.
Json
`json:"data"`
}
pkg/services/sqlstore/migrations/alert_mig.go
View file @
1418cbbd
...
...
@@ -20,28 +20,30 @@ func addAlertMigrations(mg *Migrator) {
{
Name
:
"frequency"
,
Type
:
DB_BigInt
,
Nullable
:
false
},
{
Name
:
"handler"
,
Type
:
DB_BigInt
,
Nullable
:
false
},
{
Name
:
"severity"
,
Type
:
DB_Text
,
Nullable
:
false
},
{
Name
:
"enabled"
,
Type
:
DB_Bool
,
Nullable
:
false
},
{
Name
:
"paused"
,
Type
:
DB_Bool
,
Nullable
:
false
},
{
Name
:
"silenced"
,
Type
:
DB_Bool
,
Nullable
:
false
},
{
Name
:
"execution_error"
,
Type
:
DB_Text
,
Nullable
:
false
},
{
Name
:
"last_eval_data"
,
Type
:
DB_Text
,
Nullable
:
false
},
{
Name
:
"last_eval_time"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
{
Name
:
"created"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
{
Name
:
"updated"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
{
Name
:
"updated_by"
,
Type
:
DB_BigInt
,
Nullable
:
false
},
{
Name
:
"created_by"
,
Type
:
DB_BigInt
,
Nullable
:
false
},
},
Indices
:
[]
*
Index
{
{
Cols
:
[]
string
{
"org_id"
,
"id"
},
Type
:
IndexType
},
{
Cols
:
[]
string
{
"state"
},
Type
:
IndexType
},
{
Cols
:
[]
string
{
"dashboard_id"
},
Type
:
IndexType
},
},
}
// create table
mg
.
AddMigration
(
"create alert table v1"
,
NewAddTableMigration
(
alertV1
))
alert_heartbeat
:=
Table
{
Name
:
"alert_heartbeat"
,
Columns
:
[]
*
Column
{
{
Name
:
"id"
,
Type
:
DB_BigInt
,
IsPrimaryKey
:
true
,
IsAutoIncrement
:
true
},
{
Name
:
"server_id"
,
Type
:
DB_NVarchar
,
Length
:
50
,
Nullable
:
false
},
{
Name
:
"created"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
{
Name
:
"updated"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
},
}
mg
.
AddMigration
(
"create alert_heartbeat table v1"
,
NewAddTableMigration
(
alert_heartbeat
))
// create indices
mg
.
AddMigration
(
"add index alert org_id & id "
,
NewAddIndexMigration
(
alertV1
,
alertV1
.
Indices
[
0
]))
mg
.
AddMigration
(
"add index alert state"
,
NewAddIndexMigration
(
alertV1
,
alertV1
.
Indices
[
1
]))
mg
.
AddMigration
(
"add index alert dashboard_id"
,
NewAddIndexMigration
(
alertV1
,
alertV1
.
Indices
[
2
]))
alert_notification
:=
Table
{
Name
:
"alert_notification"
,
...
...
@@ -54,7 +56,11 @@ func addAlertMigrations(mg *Migrator) {
{
Name
:
"created"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
{
Name
:
"updated"
,
Type
:
DB_DateTime
,
Nullable
:
false
},
},
Indices
:
[]
*
Index
{
{
Cols
:
[]
string
{
"org_id"
,
"name"
},
Type
:
UniqueIndex
},
},
}
mg
.
AddMigration
(
"create alert_notification table v1"
,
NewAddTableMigration
(
alert_notification
))
mg
.
AddMigration
(
"add index alert_notification org_id & name"
,
NewAddIndexMigration
(
alert_notification
,
alert_notification
.
Indices
[
0
]))
}
pkg/services/sqlstore/migrations/annotation_mig.go
View file @
1418cbbd
...
...
@@ -12,7 +12,6 @@ func addAnnotationMig(mg *Migrator) {
{
Name
:
"org_id"
,
Type
:
DB_BigInt
,
Nullable
:
false
},
{
Name
:
"alert_id"
,
Type
:
DB_BigInt
,
Nullable
:
true
},
{
Name
:
"user_id"
,
Type
:
DB_BigInt
,
Nullable
:
true
},
{
Name
:
"panel_link_id"
,
Type
:
DB_NVarchar
,
Length
:
32
,
Nullable
:
false
},
{
Name
:
"type"
,
Type
:
DB_NVarchar
,
Length
:
25
,
Nullable
:
false
},
{
Name
:
"title"
,
Type
:
DB_Text
,
Nullable
:
false
},
{
Name
:
"text"
,
Type
:
DB_Text
,
Nullable
:
false
},
...
...
@@ -25,7 +24,6 @@ func addAnnotationMig(mg *Migrator) {
Indices
:
[]
*
Index
{
{
Cols
:
[]
string
{
"org_id"
,
"alert_id"
},
Type
:
IndexType
},
{
Cols
:
[]
string
{
"org_id"
,
"type"
},
Type
:
IndexType
},
{
Cols
:
[]
string
{
"org_id"
,
"panel_link_id"
},
Type
:
IndexType
},
{
Cols
:
[]
string
{
"timestamp"
},
Type
:
IndexType
},
},
}
...
...
@@ -35,6 +33,5 @@ func addAnnotationMig(mg *Migrator) {
// create indices
mg
.
AddMigration
(
"add index annotation org_id & alert_id "
,
NewAddIndexMigration
(
table
,
table
.
Indices
[
0
]))
mg
.
AddMigration
(
"add index annotation org_id & type"
,
NewAddIndexMigration
(
table
,
table
.
Indices
[
1
]))
mg
.
AddMigration
(
"add index annotation org_id & panel_link_id "
,
NewAddIndexMigration
(
table
,
table
.
Indices
[
2
]))
mg
.
AddMigration
(
"add index annotation timestamp"
,
NewAddIndexMigration
(
table
,
table
.
Indices
[
3
]))
mg
.
AddMigration
(
"add index annotation timestamp"
,
NewAddIndexMigration
(
table
,
table
.
Indices
[
2
]))
}
pkg/services/sqlstore/migrations/heartbeat_mig.go
0 → 100644
View file @
1418cbbd
package
migrations
//
// alert_heartbeat := Table{
// Name: "alert_heartbeat",
// Columns: []*Column{
// {Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
// {Name: "server_id", Type: DB_NVarchar, Length: 50, Nullable: false},
// {Name: "created", Type: DB_DateTime, Nullable: false},
// {Name: "updated", Type: DB_DateTime, Nullable: false},
// },
// }
//
// mg.AddMigration("create alert_heartbeat table v1", NewAddTableMigration(alert_heartbeat))
//
//
public/app/core/components/query_part/query_part_editor.ts
View file @
1418cbbd
...
...
@@ -64,7 +64,9 @@ export function queryPartEditorDirective($compile, templateSrv) {
$link
.
html
(
templateSrv
.
highlightVariablesAsHtml
(
newValue
));
part
.
updateParam
(
$input
.
val
(),
paramIndex
);
$scope
.
$apply
(
$scope
.
partUpdated
);
$scope
.
$apply
(()
=>
{
$scope
.
handleEvent
({
$event
:
{
name
:
'part-param-changed'
}});
});
}
$input
.
hide
();
...
...
public/app/features/alerting/alert_tab_ctrl.ts
View file @
1418cbbd
...
...
@@ -167,7 +167,7 @@ export class AlertTabCtrl {
addCondition
(
type
)
{
var
condition
=
this
.
buildDefaultCondition
();
// add to persited model
this
.
alert
.
conditions
.
push
(
condition
);
this
.
panelCtrl
.
conditions
.
push
(
condition
);
// add to view model
this
.
conditionModels
.
push
(
this
.
buildConditionModel
(
condition
));
}
...
...
public/app/plugins/datasource/influxdb/partials/query.editor.html
View file @
1418cbbd
...
...
@@ -57,11 +57,9 @@
<span>
GROUP BY
</span>
</label>
<query-part-editor
ng-repeat=
"part in ctrl.queryModel.groupByParts"
part=
"part"
class=
"gf-form-label query-part"
remove-action=
"ctrl.removeGroupByPart(part, $index)"
part-updated=
"ctrl.refresh();"
get-options=
"ctrl.getPartOptions(part)"
>
<query-part-editor
ng-repeat=
"part in ctrl.queryModel.groupByParts"
part=
"part"
class=
"gf-form-label query-part"
handle-event=
"ctrl.handleGroupByPartEvent(part, $index, $event)"
>
</query-part-editor>
</div>
...
...
public/app/plugins/datasource/influxdb/query_ctrl.ts
View file @
1418cbbd
...
...
@@ -106,19 +106,11 @@ export class InfluxQueryCtrl extends QueryCtrl {
this
.
panelCtrl
.
refresh
();
}
removeGroupByPart
(
part
,
index
)
{
this
.
queryModel
.
removeGroupByPart
(
part
,
index
);
this
.
panelCtrl
.
refresh
();
}
addSelectPart
(
selectParts
,
cat
,
subitem
)
{
this
.
queryModel
.
addSelectPart
(
selectParts
,
subitem
.
value
);
this
.
panelCtrl
.
refresh
();
}
removeSelectPart
(
selectParts
,
part
)
{
}
handleSelectPartEvent
(
selectParts
,
part
,
evt
)
{
switch
(
evt
.
name
)
{
case
"get-param-options"
:
{
...
...
@@ -127,9 +119,14 @@ export class InfluxQueryCtrl extends QueryCtrl {
.
then
(
this
.
transformToSegments
(
true
))
.
catch
(
this
.
handleQueryError
.
bind
(
this
));
}
case
"part-param-changed"
:
{
this
.
panelCtrl
.
refresh
();
break
;
}
case
"action-remove-part"
:
{
this
.
queryModel
.
removeSelectPart
(
selectParts
,
part
);
this
.
panelCtrl
.
refresh
();
break
;
}
case
"get-part-actions"
:
{
return
this
.
$q
.
when
([{
text
:
'Remove'
,
value
:
'remove-part'
}]);
...
...
@@ -137,8 +134,27 @@ export class InfluxQueryCtrl extends QueryCtrl {
}
}
selectPartUpdated
()
{
this
.
panelCtrl
.
refresh
();
handleGroupByPartEvent
(
part
,
index
,
evt
)
{
switch
(
evt
.
name
)
{
case
"get-param-options"
:
{
var
tagsQuery
=
this
.
queryBuilder
.
buildExploreQuery
(
'TAG_KEYS'
);
return
this
.
datasource
.
metricFindQuery
(
tagsQuery
)
.
then
(
this
.
transformToSegments
(
true
))
.
catch
(
this
.
handleQueryError
.
bind
(
this
));
}
case
"part-param-changed"
:
{
this
.
panelCtrl
.
refresh
();
break
;
}
case
"action-remove-part"
:
{
this
.
queryModel
.
removeGroupByPart
(
part
,
index
);
this
.
panelCtrl
.
refresh
();
break
;
}
case
"get-part-actions"
:
{
return
this
.
$q
.
when
([{
text
:
'Remove'
,
value
:
'remove-part'
}]);
}
}
}
fixTagSegments
()
{
...
...
@@ -183,21 +199,6 @@ export class InfluxQueryCtrl extends QueryCtrl {
.
catch
(
this
.
handleQueryError
.
bind
(
this
));
}
getPartOptions
(
part
)
{
if
(
part
.
def
.
type
===
'field'
)
{
var
fieldsQuery
=
this
.
queryBuilder
.
buildExploreQuery
(
'FIELDS'
);
return
this
.
datasource
.
metricFindQuery
(
fieldsQuery
)
.
then
(
this
.
transformToSegments
(
true
))
.
catch
(
this
.
handleQueryError
.
bind
(
this
));
}
if
(
part
.
def
.
type
===
'tag'
)
{
var
tagsQuery
=
this
.
queryBuilder
.
buildExploreQuery
(
'TAG_KEYS'
);
return
this
.
datasource
.
metricFindQuery
(
tagsQuery
)
.
then
(
this
.
transformToSegments
(
true
))
.
catch
(
this
.
handleQueryError
.
bind
(
true
));
}
}
handleQueryError
(
err
)
{
this
.
error
=
err
.
message
||
'Failed to issue metric query'
;
return
[];
...
...
@@ -259,11 +260,6 @@ export class InfluxQueryCtrl extends QueryCtrl {
.
catch
(
this
.
handleQueryError
);
}
setFill
(
fill
)
{
this
.
target
.
fill
=
fill
;
this
.
panelCtrl
.
refresh
();
}
tagSegmentUpdated
(
segment
,
index
)
{
this
.
tagSegments
[
index
]
=
segment
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment