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
f1cb8f2f
Commit
f1cb8f2f
authored
Dec 03, 2015
by
Torkel Ödegaard
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'keep_es_version' of
https://github.com/replay/grafana
into replay-keep_es_version
parents
7ec2c092
a30ceefa
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
66 additions
and
3 deletions
+66
-3
public/app/features/org/datasourceEditCtrl.js
+7
-1
public/app/plugins/datasource/elasticsearch/datasource.js
+3
-1
public/app/plugins/datasource/elasticsearch/partials/config.html
+12
-1
public/app/plugins/datasource/elasticsearch/query_builder.js
+11
-0
public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts
+33
-0
No files found.
public/app/features/org/datasourceEditCtrl.js
View file @
f1cb8f2f
...
...
@@ -13,7 +13,7 @@ function (angular, _, config) {
$scope
.
httpConfigPartialSrc
=
'app/features/org/partials/datasourceHttpConfig.html'
;
var
defaults
=
{
name
:
''
,
type
:
'graphite'
,
url
:
''
,
access
:
'proxy'
};
var
defaults
=
{
name
:
''
,
type
:
'graphite'
,
url
:
''
,
access
:
'proxy'
,
jsonData
:
{
'elasticsearchVersion'
:
2
}
};
$scope
.
indexPatternTypes
=
[
{
name
:
'No pattern'
,
value
:
undefined
},
...
...
@@ -24,6 +24,12 @@ function (angular, _, config) {
{
name
:
'Yearly'
,
value
:
'Yearly'
,
example
:
'[logstash-]YYYY'
},
];
$scope
.
elasticsearchVersions
=
[
{
name
:
'0.x'
,
value
:
0
},
{
name
:
'1.x'
,
value
:
1
},
{
name
:
'2.x'
,
value
:
2
},
];
$scope
.
init
=
function
()
{
$scope
.
isNew
=
true
;
$scope
.
datasources
=
[];
...
...
public/app/plugins/datasource/elasticsearch/datasource.js
View file @
f1cb8f2f
...
...
@@ -23,9 +23,11 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
this
.
name
=
datasource
.
name
;
this
.
index
=
datasource
.
index
;
this
.
timeField
=
datasource
.
jsonData
.
timeField
;
this
.
elasticsearchVersion
=
datasource
.
jsonData
.
elasticsearchVersion
;
this
.
indexPattern
=
new
IndexPattern
(
datasource
.
index
,
datasource
.
jsonData
.
interval
);
this
.
queryBuilder
=
new
ElasticQueryBuilder
({
timeField
:
this
.
timeField
timeField
:
this
.
timeField
,
elasticsearchVersion
:
this
.
elasticsearchVersion
});
}
...
...
public/app/plugins/datasource/elasticsearch/partials/config.html
View file @
f1cb8f2f
...
...
@@ -20,7 +20,7 @@
</ul>
<div
class=
"clearfix"
></div>
</div>
<div
class=
"tight-form
last
"
>
<div
class=
"tight-form"
>
<ul
class=
"tight-form-list"
>
<li
class=
"tight-form-item"
style=
"width: 144px"
>
Time field name
...
...
@@ -31,3 +31,14 @@
</ul>
<div
class=
"clearfix"
></div>
</div>
<div
class=
"tight-form last"
>
<ul
class=
"tight-form-list"
>
<li
class=
"tight-form-item"
style=
"width: 144px"
>
Elasticsearch version
</li>
<li>
<select
class=
"input-medium tight-form-input"
ng-model=
"current.jsonData.elasticsearchVersion"
ng-options=
"f.value as f.name for f in elasticsearchVersions"
></select>
</li>
</ul>
<div
class=
"clearfix"
></div>
</div>
public/app/plugins/datasource/elasticsearch/query_builder.js
View file @
f1cb8f2f
...
...
@@ -5,11 +5,18 @@ function () {
function
ElasticQueryBuilder
(
options
)
{
this
.
timeField
=
options
.
timeField
;
this
.
elasticsearchVersion
=
options
.
elasticsearchVersion
;
}
ElasticQueryBuilder
.
prototype
.
getRangeFilter
=
function
()
{
var
filter
=
{};
filter
[
this
.
timeField
]
=
{
"gte"
:
"$timeFrom"
,
"lte"
:
"$timeTo"
};
// elastic search versions 2.x require the time format to be specified
if
(
this
.
elasticsearchVersion
>=
2
)
{
filter
[
this
.
timeField
][
"format"
]
=
"epoch_millis"
;
}
return
filter
;
};
...
...
@@ -130,6 +137,10 @@ function () {
"min_doc_count"
:
0
,
"extended_bounds"
:
{
"min"
:
"$timeFrom"
,
"max"
:
"$timeTo"
}
};
// elastic search versions 2.x require the time format to be specified
if
(
this
.
elasticsearchVersion
>=
2
)
{
esAgg
[
"date_histogram"
][
"format"
]
=
"epoch_millis"
;
}
break
;
}
case
'filters'
:
{
...
...
public/app/plugins/datasource/elasticsearch/specs/query_builder_specs.ts
View file @
f1cb8f2f
...
...
@@ -36,6 +36,39 @@ describe('ElasticQueryBuilder', function() {
expect
(
query
.
aggs
[
"2"
].
aggs
[
"3"
].
date_histogram
.
field
).
to
.
be
(
"@timestamp"
);
});
it
(
'with es1.x and es2.x date histogram queries check time format'
,
function
()
{
var
builder_2x
=
new
ElasticQueryBuilder
({
timeField
:
'@timestamp'
,
elasticsearchVersion
:
2
});
var
query_params
=
{
metrics
:
[],
bucketAggs
:
[
{
type
:
'date_histogram'
,
field
:
'@timestamp'
,
id
:
'1'
}
],
};
// format should not be specified in 1.x queries
expect
(
"format"
in
builder
.
build
(
query_params
)[
"aggs"
][
"1"
][
"date_histogram"
]).
to
.
be
(
false
);
// 2.x query should specify format to be "epoch_millis"
expect
(
builder_2x
.
build
(
query_params
)[
"aggs"
][
"1"
][
"date_histogram"
][
"format"
]).
to
.
be
(
"epoch_millis"
);
});
it
(
'with es1.x and es2.x range filter check time format'
,
function
()
{
var
builder_2x
=
new
ElasticQueryBuilder
({
timeField
:
'@timestamp'
,
elasticsearchVersion
:
2
});
// format should not be specified in 1.x queries
expect
(
"format"
in
builder
.
getRangeFilter
()[
"@timestamp"
]).
to
.
be
(
false
);
// 2.x query should specify format to be "epoch_millis"
expect
(
builder_2x
.
getRangeFilter
()[
"@timestamp"
][
"format"
]).
to
.
be
(
"epoch_millis"
);
});
it
(
'with select field'
,
function
()
{
var
query
=
builder
.
build
({
metrics
:
[{
type
:
'avg'
,
field
:
'@value'
,
id
:
'1'
}],
...
...
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