|
1 |
| -import { DataSourceInstanceSettings, CoreApp, ScopedVars, DataQueryRequest, DataQueryResponse, DateTime } from "@grafana/data"; |
| 1 | +import { DataSourceInstanceSettings, CoreApp, ScopedVars, DataQueryRequest, DataQueryResponse } from "@grafana/data"; |
2 | 2 | import { DataSourceWithBackend, getTemplateSrv } from "@grafana/runtime";
|
3 |
| -import { parseJsQuery } from "./utils"; |
| 3 | +import { parseJsQuery, datetimeToJson, getBucketCount } from "./utils"; |
4 | 4 | import { MongoQuery, MongoDataSourceOptions, DEFAULT_QUERY, QueryLanguage } from "./types";
|
5 | 5 | import { Observable } from "rxjs";
|
6 | 6 |
|
7 |
| -function datetimeToJson(datetime: DateTime) { |
8 |
| - return JSON.stringify({ |
9 |
| - $date: { |
10 |
| - $numberLong: datetime.toDate().getTime().toString() |
11 |
| - } |
12 |
| - }); |
13 |
| -} |
14 | 7 |
|
15 | 8 | export class DataSource extends DataSourceWithBackend<MongoQuery, MongoDataSourceOptions> {
|
16 | 9 | constructor(instanceSettings: DataSourceInstanceSettings<MongoDataSourceOptions>) {
|
@@ -44,6 +37,7 @@ export class DataSource extends DataSourceWithBackend<MongoQuery, MongoDataSourc
|
44 | 37 | ...query,
|
45 | 38 | queryText: queryText.replaceAll(/"\$from"/g, datetimeToJson(request.range.from))
|
46 | 39 | .replaceAll(/"\$to"/g, datetimeToJson(request.range.to))
|
| 40 | + .replaceAll(/"\$dateBucketCount"/g, getBucketCount(request.range.from, request.range.to, request.intervalMs).toString()) |
47 | 41 | };
|
48 | 42 | });
|
49 | 43 |
|
|
0 commit comments