You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by qi...@apache.org on 2023/04/24 02:42:33 UTC

[skywalking-grafana-plugins] branch main updated (ad1d2ca -> 5844ed1)

This is an automated email from the ASF dual-hosted git repository.

qiuxiafan pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-grafana-plugins.git


    from ad1d2ca  feat: format duration
     new 54e5354  feat: update query
     new 5844ed1  feat: update query

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/components/ConfigEditor.tsx | 17 +++++++++++++++++
 src/datasource.ts               | 37 ++++++++++++++++---------------------
 src/plugin.json                 |  2 +-
 src/types.ts                    |  1 +
 4 files changed, 35 insertions(+), 22 deletions(-)


[skywalking-grafana-plugins] 01/02: feat: update query

Posted by qi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

qiuxiafan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-grafana-plugins.git

commit 54e535492be5f3b336af95d02c077590fae8ad0d
Author: Fine0830 <fa...@gmail.com>
AuthorDate: Sat Apr 22 17:38:05 2023 +0800

    feat: update query
---
 src/components/ConfigEditor.tsx | 17 +++++++++++++++++
 src/datasource.ts               | 36 ++++++++++++++++++------------------
 src/plugin.json                 |  2 +-
 src/types.ts                    |  1 +
 4 files changed, 37 insertions(+), 19 deletions(-)

diff --git a/src/components/ConfigEditor.tsx b/src/components/ConfigEditor.tsx
index b37208e..3a9345b 100644
--- a/src/components/ConfigEditor.tsx
+++ b/src/components/ConfigEditor.tsx
@@ -39,11 +39,28 @@ export function ConfigEditor(props: Props) {
     });
   };
 
+  const onURLChange = (event: ChangeEvent<HTMLInputElement>) => {
+    const { onOptionsChange, options } = props;
+    const jsonData = {
+      ...options.jsonData,
+      URL: event.target.value,
+    };
+    onOptionsChange({ ...options, jsonData });
+  };
+
   const { jsonData, secureJsonFields } = options;
   const secureJsonData = (options.secureJsonData || {}) as MySecureJsonData;
 
   return (
     <div className="gf-form-group">
+      <InlineField label="URL" labelWidth={12}>
+        <Input
+          onChange={onURLChange}
+          value={jsonData.URL || ''}
+          placeholder="http://skywalking.example.com"
+          width={40}
+        />
+      </InlineField>
       <InlineField label="Path" labelWidth={12}>
         <Input
           onChange={onPathChange}
diff --git a/src/datasource.ts b/src/datasource.ts
index 3c26742..50e39be 100644
--- a/src/datasource.ts
+++ b/src/datasource.ts
@@ -18,17 +18,22 @@ enum TimeType {
   HOUR_TIME = "HOUR",
   DAY_TIME = "DAY",
 }
+
+let BaseUrl = '';
+ 
+export const setUrl = (url: string) => {
+  BaseUrl = url;
+};
 export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
-  url: string;
+  URL: string;
   constructor(instanceSettings: DataSourceInstanceSettings<MyDataSourceOptions>) {
     super(instanceSettings);
     // proxy url
-    this.url = instanceSettings.url || '';
+    this.URL = instanceSettings.url || '';
   }
 
   async query(options: DataQueryRequest<MyQuery>): Promise<DataQueryResponse> {
     const { range } = options;
-    console.log(options);
     const from = range!.from.valueOf();
     const to = range!.to.valueOf();
     const dates = this.timeFormat([new Date(from), new Date(to)]);
@@ -41,19 +46,20 @@ export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
     // Return a constant for each query.
     const data = options.targets.map(async (target) => {
       const query = defaults(target, DEFAULT_QUERY);
-      const dataQuery = getTemplateSrv().replace(query.queryText, options.scopedVars);
+      getTemplateSrv().replace(query.queryText, options.scopedVars);
       const  s =  {
         query: "query queryServices($duration: Duration!,$keyword: String!) {\n    services: getAllServices(duration: $duration, group: $keyword) {\n      key: id\n      label: name\n      group\n    }\n  }",
         variables: {duration,"keyword":""},
       };
+      // fetch services from api
+      const services = await this.doRequest(s);
+      console.log(services);
       const t = {
         query: "query queryData($duration: Duration!, $serviceIds: [ID!]!) {\n  topology: getServicesTopology(duration: $duration, serviceIds: $serviceIds) {\n    nodes {\n      id\n      name\n      type\n      isReal\n    }\n    calls {\n      id\n      source\n      detectPoints\n      target\n    }\n  }}",
-        variables: {duration,"serviceIds":["YWdlbnQ6OnNvbmdz.1","YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1","YWdlbnQ6OmFwcA==.1","YWdlbnQ6OmdhdGV3YXk=.1","YWdlbnQ6OmZyb250ZW5k.1"]},
+        variables: {duration,serviceIds:["YWdlbnQ6OnNvbmdz.1","YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1","YWdlbnQ6OmFwcA==.1","YWdlbnQ6OmdhdGV3YXk=.1","YWdlbnQ6OmZyb250ZW5k.1"]},
       };
-      // fetch services from api
-      const services = await this.doRequest(s);
       // fetch topology data from api
-      const topology = await this.doRequest(t);
+     await this.doRequest(t);
       return new MutableDataFrame({
         refId: target.refId,
         fields: [
@@ -68,15 +74,8 @@ export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
   async doRequest(params?: Record<string, any>) {
     // Do the request on proxy; the server will replace url + routePath with the url
     // defined in plugin.json
-    const result = getBackendSrv().fetch({
-      method: 'POST',
-      url: `${this.url}${routePath}`,
-      headers: {
-        'Content-Type': 'application/json'
-      },
-      data: params,
-    });
-    console.log(result);
+    const result = getBackendSrv().post(`${this.URL}${routePath}`, params);
+
     return result;
   }
 
@@ -91,7 +90,8 @@ export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
       step = TimeType.DAY_TIME;
     }
     return { start: time[0], end: time[1], step };
-  };
+  }
+
   dateFormatStep(date: Date, step: string, monthDayDiff?: boolean): string {
     const year = date.getFullYear();
     const monthTemp = date.getMonth() + 1;
diff --git a/src/plugin.json b/src/plugin.json
index e467eb1..d3ac2fd 100644
--- a/src/plugin.json
+++ b/src/plugin.json
@@ -26,7 +26,7 @@
   "routes": [
     {
       "path": "graphql",
-      "url": "{{ .JsonData.url }}"
+      "url": "{{ .JsonData.URL }}"
     }
   ]
 }
diff --git a/src/types.ts b/src/types.ts
index cb37b1c..1e04930 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -14,6 +14,7 @@ export const DEFAULT_QUERY: Partial<MyQuery> = {
  */
 export interface MyDataSourceOptions extends DataSourceJsonData {
   path?: string;
+  URL: string;
 }
 
 /**


[skywalking-grafana-plugins] 02/02: feat: update query

Posted by qi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

qiuxiafan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-grafana-plugins.git

commit 5844ed1798c81b4a5f0e8235cc096176b125f8bc
Author: Fine0830 <fa...@gmail.com>
AuthorDate: Mon Apr 24 10:38:22 2023 +0800

    feat: update query
---
 src/datasource.ts | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/datasource.ts b/src/datasource.ts
index 50e39be..489a84d 100644
--- a/src/datasource.ts
+++ b/src/datasource.ts
@@ -19,11 +19,6 @@ enum TimeType {
   DAY_TIME = "DAY",
 }
 
-let BaseUrl = '';
- 
-export const setUrl = (url: string) => {
-  BaseUrl = url;
-};
 export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
   URL: string;
   constructor(instanceSettings: DataSourceInstanceSettings<MyDataSourceOptions>) {
@@ -49,17 +44,17 @@ export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
       getTemplateSrv().replace(query.queryText, options.scopedVars);
       const  s =  {
         query: "query queryServices($duration: Duration!,$keyword: String!) {\n    services: getAllServices(duration: $duration, group: $keyword) {\n      key: id\n      label: name\n      group\n    }\n  }",
-        variables: {duration,"keyword":""},
+        variables: {duration, keyword:""},
       };
       // fetch services from api
-      const services = await this.doRequest(s);
-      console.log(services);
-      const t = {
-        query: "query queryData($duration: Duration!, $serviceIds: [ID!]!) {\n  topology: getServicesTopology(duration: $duration, serviceIds: $serviceIds) {\n    nodes {\n      id\n      name\n      type\n      isReal\n    }\n    calls {\n      id\n      source\n      detectPoints\n      target\n    }\n  }}",
-        variables: {duration,serviceIds:["YWdlbnQ6OnNvbmdz.1","YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1","YWdlbnQ6OmFwcA==.1","YWdlbnQ6OmdhdGV3YXk=.1","YWdlbnQ6OmZyb250ZW5k.1"]},
-      };
+      await this.doRequest(s);
+      // console.log(services);
+      // const t = {
+      //   query: "query queryData($duration: Duration!, $serviceIds: [ID!]!) {\n  topology: getServicesTopology(duration: $duration, serviceIds: $serviceIds) {\n    nodes {\n      id\n      name\n      type\n      isReal\n    }\n    calls {\n      id\n      source\n      detectPoints\n      target\n    }\n  }}",
+      //   variables: JSON.stringify({duration,serviceIds:["YWdlbnQ6OnNvbmdz.1","YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1","YWdlbnQ6OmFwcA==.1","YWdlbnQ6OmdhdGV3YXk=.1","YWdlbnQ6OmZyb250ZW5k.1"]}),
+      // };
       // fetch topology data from api
-     await this.doRequest(t);
+    //  await this.doRequest(t);
       return new MutableDataFrame({
         refId: target.refId,
         fields: [