From 9e9b7aeae0a5621dbf7cd635c14eecd6647ea76d Mon Sep 17 00:00:00 2001 From: Andrey Mitrofanov Date: Fri, 30 Dec 2022 11:03:20 +0000 Subject: [PATCH] some fixes --- .gitignore | 2 +- docker-compose.yaml | 4 ++-- pkg/plugin/datasource.go | 8 +++++--- src/components/QueryEditor.tsx | 20 +++++++++++--------- src/datasource.ts | 18 +++++++++++++++--- src/plugin.json | 3 ++- src/types.ts | 1 - 7 files changed, 36 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 8b5f1ee..1881c7d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,5 +31,5 @@ vendor/ # Editor .idea - +.devcontainer/ .eslintcache diff --git a/docker-compose.yaml b/docker-compose.yaml index ff145d3..767eb2f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,8 +7,8 @@ services: context: ./.config args: grafana_version: ${GRAFANA_VERSION:-9.2.5} - ports: - - 3000:3000/tcp + # ports: + # - 3000:3000/tcp network_mode: "host" environment: - GF_SECURITY_ADMIN_USER=admin diff --git a/pkg/plugin/datasource.go b/pkg/plugin/datasource.go index cceb6d9..e372f53 100644 --- a/pkg/plugin/datasource.go +++ b/pkg/plugin/datasource.go @@ -80,11 +80,13 @@ func (d *monitoringDatasource) QueryData(ctx context.Context, req *backend.Query for _, metric := range metrics.Metrics { var valuesField *data.Field - switch metric.Type { - case "IGAUGE": + switch { + case len(metric.Timeseries.DoubleValues) > 0: + valuesField = valueField(mr.Alias, metric.Name, metric.Labels, metric.Timeseries.DoubleValues) + case len(metric.Timeseries.Int64Values) > 0: valuesField = valueField(mr.Alias, metric.Name, metric.Labels, metric.Timeseries.Int64Values) default: - valuesField = valueField(mr.Alias, metric.Name, metric.Labels, metric.Timeseries.DoubleValues) + continue } timestamps := make([]time.Time, len(metric.Timeseries.Timestamps)) diff --git a/src/components/QueryEditor.tsx b/src/components/QueryEditor.tsx index 37d002b..88b8550 100644 --- a/src/components/QueryEditor.tsx +++ b/src/components/QueryEditor.tsx @@ -1,7 +1,7 @@ import defaults from 'lodash/defaults'; import React, { ChangeEvent, PureComponent } from 'react'; -import { Field, InlineField, InlineFieldRow, Input, Select, TextArea } from '@grafana/ui'; +import { Field, InlineField, InlineFieldRow, Input, QueryField, Select } from '@grafana/ui'; import { QueryEditorProps, SelectableValue } from '@grafana/data'; import { DataSource } from '../datasource'; import { defaultQuery, MonitoringDataSourceOptions, MonitoringQuery } from '../types'; @@ -29,13 +29,13 @@ export class QueryEditor extends PureComponent { onRunQuery(); }; - onQueryTextChange = (event: ChangeEvent) => { - const { onChange, onRunQuery, query } = this.props; - onChange({ ...query, queryText: event.target.value }); - onRunQuery(); + onQueryTextChange = (value: string) => { + const { onChange, query } = this.props; + onChange({ ...query, queryText: value }); }; render() { + const { onRunQuery } = this.props; const query = defaults(this.props.query, defaultQuery); const { folderId, aggregation, alias, queryText } = query; const aggOptions: Array> = [ @@ -75,13 +75,15 @@ export class QueryEditor extends PureComponent { invalid={queryText.includes("folderId")} error="do not use folderId in query" > -