mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
tech: migrating elasticsearch to typescript
This commit is contained in:
43
public/app/plugins/datasource/elasticsearch/index_pattern.ts
Normal file
43
public/app/plugins/datasource/elasticsearch/index_pattern.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
///<reference path="../../../headers/common.d.ts" />
|
||||
|
||||
import moment from 'moment';
|
||||
|
||||
const intervalMap = {
|
||||
"Hourly": { startOf: 'hour', amount: 'hours'},
|
||||
"Daily": { startOf: 'day', amount: 'days'},
|
||||
"Weekly": { startOf: 'isoWeek', amount: 'weeks'},
|
||||
"Monthly": { startOf: 'month', amount: 'months'},
|
||||
"Yearly": { startOf: 'year', amount: 'years'},
|
||||
};
|
||||
|
||||
export class IndexPattern {
|
||||
|
||||
constructor(private pattern, private interval: string | null) { }
|
||||
|
||||
getIndexForToday() {
|
||||
if (this.interval) {
|
||||
return moment.utc().format(this.pattern);
|
||||
} else {
|
||||
return this.pattern;
|
||||
}
|
||||
};
|
||||
|
||||
getIndexList(from, to) {
|
||||
if (!this.interval) {
|
||||
return this.pattern;
|
||||
}
|
||||
|
||||
var intervalInfo = intervalMap[this.interval];
|
||||
var start = moment(from).utc().startOf(intervalInfo.startOf);
|
||||
var end = moment(to).utc().startOf(intervalInfo.startOf).valueOf();
|
||||
var indexList = [];
|
||||
|
||||
while (start <= end) {
|
||||
indexList.push(start.format(this.pattern));
|
||||
start.add(1, intervalInfo.amount);
|
||||
}
|
||||
|
||||
return indexList;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user