queryBuilder.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. define([
  2. ],
  3. function () {
  4. 'use strict';
  5. function ElasticQueryBuilder(target) {
  6. this.target = target;
  7. }
  8. ElasticQueryBuilder.prototype.build = function() {
  9. var target = this.target;
  10. var query = {
  11. "facets": {
  12. "metric": {
  13. "date_histogram": {
  14. "interval": "$interval",
  15. "key_field": "@timestamp",
  16. "min_doc_count": 0,
  17. "value_field": "metric"
  18. }
  19. }
  20. },
  21. "query": {
  22. "filtered": {
  23. "filter": {
  24. "and": [
  25. {
  26. "range": {
  27. "@timestamp": {
  28. "gte": "$rangeFrom",
  29. "lte": "$rangeTo"
  30. }
  31. }
  32. },
  33. {
  34. "term": {
  35. "service": "cpu",
  36. }
  37. }
  38. ]
  39. }
  40. }
  41. },
  42. "size": "$maxDataPoints",
  43. "sort": "@timestamp"
  44. };
  45. query = JSON.stringify(query);
  46. target.query = query;
  47. return query;
  48. };
  49. return ElasticQueryBuilder;
  50. });