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
17e99bb3
Commit
17e99bb3
authored
Sep 10, 2018
by
Torkel Ödegaard
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:grafana/grafana
parents
34567bc4
7e0637aa
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
10 deletions
+21
-10
public/app/features/dashboard/dashgrid/DashboardGrid.tsx
+2
-1
public/app/plugins/datasource/postgres/postgres_query.ts
+10
-5
public/app/plugins/datasource/postgres/specs/postgres_query.test.ts
+9
-4
No files found.
public/app/features/dashboard/dashgrid/DashboardGrid.tsx
View file @
17e99bb3
...
@@ -177,7 +177,8 @@ export class DashboardGrid extends React.Component<DashboardGridProps, any> {
...
@@ -177,7 +177,8 @@ export class DashboardGrid extends React.Component<DashboardGridProps, any> {
for
(
const
panel
of
this
.
dashboard
.
panels
)
{
for
(
const
panel
of
this
.
dashboard
.
panels
)
{
const
panelClasses
=
classNames
({
panel
:
true
,
'panel--fullscreen'
:
panel
.
fullscreen
});
const
panelClasses
=
classNames
({
panel
:
true
,
'panel--fullscreen'
:
panel
.
fullscreen
});
panelElements
.
push
(
panelElements
.
push
(
<
div
key=
{
panel
.
id
.
toString
()
}
className=
{
panelClasses
}
>
/** panel-id is set for html bookmarks */
<
div
key=
{
panel
.
id
.
toString
()
}
className=
{
panelClasses
}
id=
{
`panel-${panel.id.toString()}`
}
>
<
DashboardPanel
panel=
{
panel
}
getPanelContainer=
{
this
.
props
.
getPanelContainer
}
/>
<
DashboardPanel
panel=
{
panel
}
getPanelContainer=
{
this
.
props
.
getPanelContainer
}
/>
</
div
>
</
div
>
);
);
...
...
public/app/plugins/datasource/postgres/postgres_query.ts
View file @
17e99bb3
...
@@ -44,15 +44,15 @@ export default class PostgresQuery {
...
@@ -44,15 +44,15 @@ export default class PostgresQuery {
}
}
quoteIdentifier
(
value
)
{
quoteIdentifier
(
value
)
{
return
'"'
+
value
.
replace
(
/"/g
,
'""'
)
+
'"'
;
return
'"'
+
String
(
value
)
.
replace
(
/"/g
,
'""'
)
+
'"'
;
}
}
quoteLiteral
(
value
)
{
quoteLiteral
(
value
)
{
return
"'"
+
value
.
replace
(
/'/g
,
"''"
)
+
"'"
;
return
"'"
+
String
(
value
)
.
replace
(
/'/g
,
"''"
)
+
"'"
;
}
}
escapeLiteral
(
value
)
{
escapeLiteral
(
value
)
{
return
value
.
replace
(
/'/g
,
"''"
);
return
String
(
value
)
.
replace
(
/'/g
,
"''"
);
}
}
hasTimeGroup
()
{
hasTimeGroup
()
{
...
@@ -187,7 +187,8 @@ export default class PostgresQuery {
...
@@ -187,7 +187,8 @@ export default class PostgresQuery {
case
'increase'
:
case
'increase'
:
curr
=
query
;
curr
=
query
;
prev
=
'lag('
+
curr
+
') OVER ('
+
over
+
')'
;
prev
=
'lag('
+
curr
+
') OVER ('
+
over
+
')'
;
query
=
'(CASE WHEN '
+
curr
+
' >= '
+
prev
+
' THEN '
+
curr
+
' - '
+
prev
+
' ELSE '
+
curr
+
' END)'
;
query
=
'(CASE WHEN '
+
curr
+
' >= '
+
prev
+
' THEN '
+
curr
+
' - '
+
prev
;
query
+=
' WHEN '
+
prev
+
' IS NULL THEN NULL ELSE '
+
curr
+
' END)'
;
break
;
break
;
case
'rate'
:
case
'rate'
:
let
timeColumn
=
this
.
target
.
timeColumn
;
let
timeColumn
=
this
.
target
.
timeColumn
;
...
@@ -197,7 +198,8 @@ export default class PostgresQuery {
...
@@ -197,7 +198,8 @@ export default class PostgresQuery {
curr
=
query
;
curr
=
query
;
prev
=
'lag('
+
curr
+
') OVER ('
+
over
+
')'
;
prev
=
'lag('
+
curr
+
') OVER ('
+
over
+
')'
;
query
=
'(CASE WHEN '
+
curr
+
' >= '
+
prev
+
' THEN '
+
curr
+
' - '
+
prev
+
' ELSE '
+
curr
+
' END)'
;
query
=
'(CASE WHEN '
+
curr
+
' >= '
+
prev
+
' THEN '
+
curr
+
' - '
+
prev
;
query
+=
' WHEN '
+
prev
+
' IS NULL THEN NULL ELSE '
+
curr
+
' END)'
;
query
+=
'/extract(epoch from '
+
timeColumn
+
' - lag('
+
timeColumn
+
') OVER ('
+
over
+
'))'
;
query
+=
'/extract(epoch from '
+
timeColumn
+
' - lag('
+
timeColumn
+
') OVER ('
+
over
+
'))'
;
break
;
break
;
default
:
default
:
...
@@ -279,6 +281,9 @@ export default class PostgresQuery {
...
@@ -279,6 +281,9 @@ export default class PostgresQuery {
query
+=
this
.
buildGroupClause
();
query
+=
this
.
buildGroupClause
();
query
+=
'
\
nORDER BY 1'
;
query
+=
'
\
nORDER BY 1'
;
if
(
this
.
hasMetricColumn
())
{
query
+=
',2'
;
}
return
query
;
return
query
;
}
}
...
...
public/app/plugins/datasource/postgres/specs/postgres_query.test.ts
View file @
17e99bb3
...
@@ -72,7 +72,9 @@ describe('PostgresQuery', () => {
...
@@ -72,7 +72,9 @@ describe('PostgresQuery', () => {
{
type
:
'window'
,
params
:
[
'increase'
]
},
{
type
:
'window'
,
params
:
[
'increase'
]
},
];
];
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
'(CASE WHEN v >= lag(v) OVER (ORDER BY time) THEN v - lag(v) OVER (ORDER BY time) ELSE v END) AS "a"'
'(CASE WHEN v >= lag(v) OVER (ORDER BY time) '
+
'THEN v - lag(v) OVER (ORDER BY time) '
+
'WHEN lag(v) OVER (ORDER BY time) IS NULL THEN NULL ELSE v END) AS "a"'
);
);
});
});
...
@@ -96,7 +98,9 @@ describe('PostgresQuery', () => {
...
@@ -96,7 +98,9 @@ describe('PostgresQuery', () => {
{
type
:
'window'
,
params
:
[
'increase'
]
},
{
type
:
'window'
,
params
:
[
'increase'
]
},
];
];
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
'(CASE WHEN v >= lag(v) OVER (PARTITION BY host ORDER BY time) THEN v - lag(v) OVER (PARTITION BY host ORDER BY time) ELSE v END) AS "a"'
'(CASE WHEN v >= lag(v) OVER (PARTITION BY host ORDER BY time) '
+
'THEN v - lag(v) OVER (PARTITION BY host ORDER BY time) '
+
'WHEN lag(v) OVER (PARTITION BY host ORDER BY time) IS NULL THEN NULL ELSE v END) AS "a"'
);
);
column
=
[
column
=
[
{
type
:
'column'
,
params
:
[
'v'
]
},
{
type
:
'column'
,
params
:
[
'v'
]
},
...
@@ -106,7 +110,8 @@ describe('PostgresQuery', () => {
...
@@ -106,7 +110,8 @@ describe('PostgresQuery', () => {
];
];
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
expect
(
query
.
buildValueColumn
(
column
)).
toBe
(
'(CASE WHEN max(v) >= lag(max(v)) OVER (PARTITION BY host ORDER BY time) '
+
'(CASE WHEN max(v) >= lag(max(v)) OVER (PARTITION BY host ORDER BY time) '
+
'THEN max(v) - lag(max(v)) OVER (PARTITION BY host ORDER BY time) ELSE max(v) END) AS "a"'
'THEN max(v) - lag(max(v)) OVER (PARTITION BY host ORDER BY time) '
+
'WHEN lag(max(v)) OVER (PARTITION BY host ORDER BY time) IS NULL THEN NULL ELSE max(v) END) AS "a"'
);
);
});
});
...
@@ -149,7 +154,7 @@ describe('PostgresQuery', () => {
...
@@ -149,7 +154,7 @@ describe('PostgresQuery', () => {
expect
(
query
.
buildQuery
()).
toBe
(
result
);
expect
(
query
.
buildQuery
()).
toBe
(
result
);
query
.
target
.
metricColumn
=
'm'
;
query
.
target
.
metricColumn
=
'm'
;
result
=
'SELECT
\
n t AS "time",
\
n m AS metric,
\
n value
\
nFROM table
\
nORDER BY 1'
;
result
=
'SELECT
\
n t AS "time",
\
n m AS metric,
\
n value
\
nFROM table
\
nORDER BY 1
,2
'
;
expect
(
query
.
buildQuery
()).
toBe
(
result
);
expect
(
query
.
buildQuery
()).
toBe
(
result
);
});
});
});
});
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