├── lombok.config
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── grafana-api.iml
├── src
├── test
│ └── java
│ │ └── com
│ │ └── grafana
│ │ └── api
│ │ └── GrafanaClientTest.java
├── main
│ └── java
│ │ └── com
│ │ └── grafana
│ │ └── api
│ │ ├── client
│ │ ├── models
│ │ │ ├── Templating.java
│ │ │ ├── Time.java
│ │ │ ├── Annotations.java
│ │ │ ├── Group.java
│ │ │ ├── Current.java
│ │ │ ├── GrafanaDashboard.java
│ │ │ ├── ValueMap.java
│ │ │ ├── GridPos.java
│ │ │ ├── Timepicker.java
│ │ │ ├── Legend.java
│ │ │ ├── Target.java
│ │ │ ├── GrafanaSearchResult.java
│ │ │ ├── TreeMap.java
│ │ │ ├── List.java
│ │ │ ├── Panel.java
│ │ │ ├── Meta.java
│ │ │ └── Dashboard.java
│ │ ├── GrafanaService.java
│ │ └── GrafanaClient.java
│ │ ├── configuration
│ │ └── GrafanaConfiguration.java
│ │ └── exceptions
│ │ ├── GrafanaException.java
│ │ └── GrafanaDashboardDoesNotExistException.java
└── integration-test
│ └── java
│ └── com.grafana.api.client
│ └── GrafanaClientTest.java
├── README.md
├── settings.gradle
├── .circleci
└── config.yml
├── gradlew.bat
└── gradlew
/lombok.config:
--------------------------------------------------------------------------------
1 | lombok.addLombokGeneratedAnnotation=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ohmrefresh/grafana-client/master/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore Gradle project-specific cache directory
2 | .gradle
3 | .idea
4 | .iml
5 |
6 | # Ignore Gradle build output directory
7 | build
8 | out
--------------------------------------------------------------------------------
/grafana-api.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Oct 15 22:05:31 ICT 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/src/test/java/com/grafana/api/GrafanaClientTest.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api;
2 |
3 | import static org.junit.Assert.assertTrue;
4 |
5 | import org.junit.Test;
6 |
7 | public class GrafanaClientTest {
8 |
9 | @Test
10 | public void test001() {
11 | assertTrue(true);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [Build status] [](https://circleci.com/gh/ohmrefresh/grafana-api)
2 |
3 | [code coverage] [](https://codecov.io/gh/ohmrefresh/grafana-api)
4 |
5 | Refer to https://github.com/appnexus/grafana-api-java-client
6 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * This file was generated by the Gradle 'init' task.
3 | *
4 | * The settings file is used to specify which projects to include in your build.
5 | *
6 | * Detailed information about configuring a multi-project build in Gradle can be found
7 | * in the user manual at https://docs.gradle.org/5.6.2/userguide/multi_project_builds.html
8 | */
9 |
10 | rootProject.name = 'grafana-api'
11 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Templating.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Templating implements Serializable {
12 |
13 | private java.util.List list;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Time.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Time implements Serializable {
12 |
13 | private String from;
14 | private String to;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Annotations.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Annotations implements Serializable {
12 |
13 | private java.util.List list;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Group.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Group implements Serializable {
12 |
13 | private String key;
14 | private String value;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Current.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Current implements Serializable {
12 |
13 | private String text;
14 | private String value;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/GrafanaDashboard.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class GrafanaDashboard implements Serializable {
12 | private Dashboard dashboard;
13 | private Meta meta;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/ValueMap.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class ValueMap implements Serializable {
12 |
13 | private String op;
14 | private String text;
15 | private String value;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/GridPos.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class GridPos implements Serializable {
12 |
13 | private long h;
14 | private long w;
15 | private long x;
16 | private long y;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Timepicker.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | @Data
10 | @NoArgsConstructor
11 | @Accessors(fluent = true)
12 | public class Timepicker implements Serializable {
13 |
14 | private List refreshIntervals;
15 | private List timeOptions;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/configuration/GrafanaConfiguration.java:
--------------------------------------------------------------------------------
1 | /* Licensed under Apache-2.0 */
2 | package com.grafana.api.configuration;
3 |
4 | import lombok.AllArgsConstructor;
5 | import lombok.Getter;
6 | import lombok.NoArgsConstructor;
7 | import lombok.Setter;
8 | import lombok.experimental.Accessors;
9 |
10 | @Getter
11 | @Setter
12 | @AllArgsConstructor
13 | @NoArgsConstructor
14 | @Accessors(fluent = true)
15 | public class GrafanaConfiguration {
16 | private String host;
17 | private String apiKey;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Legend.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Legend implements Serializable {
12 |
13 | private Boolean avg;
14 | private Boolean current;
15 | private Boolean max;
16 | private Boolean min;
17 | private Boolean show;
18 | private Boolean total;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/Target.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class Target implements Serializable {
12 |
13 | private String expr;
14 | private String format;
15 | private long intervalFactor;
16 | private String legendFormat;
17 | private String metric;
18 | private String refId;
19 | private long step;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/GrafanaSearchResult.java:
--------------------------------------------------------------------------------
1 | /* Licensed under Apache-2.0 */
2 | package com.grafana.api.client.models;
3 |
4 | import java.util.List;
5 | import lombok.Data;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @Accessors(fluent = true)
10 | public class GrafanaSearchResult {
11 | private long id;
12 | private Boolean isStarred;
13 | private String slug;
14 | private List tags;
15 | private String title;
16 | private String type;
17 | private String uid;
18 | private String uri;
19 | private String url;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/TreeMap.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 | import lombok.experimental.Accessors;
8 |
9 | @Data
10 | @NoArgsConstructor
11 | @Accessors(fluent = true)
12 | public class TreeMap implements Serializable {
13 |
14 | private String colorByFunction;
15 | private Boolean debug;
16 | private long depth;
17 | private Boolean enableGrouping;
18 | private Boolean enableTimeBlocks;
19 | private List groups;
20 | private List ids;
21 | private String mode;
22 | private String nodeSizeProperty;
23 | private String sizeByFunction;
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/exceptions/GrafanaException.java:
--------------------------------------------------------------------------------
1 | /* Licensed under Apache-2.0 */
2 | package com.grafana.api.exceptions;
3 |
4 | import java.io.IOException;
5 | import okhttp3.ResponseBody;
6 |
7 | public class GrafanaException extends Exception {
8 |
9 | public static GrafanaException withErrorBody(ResponseBody body) throws IOException {
10 | return body != null
11 | ? new GrafanaException("Unexpected Grafana error; " + body.string())
12 | : new GrafanaException("Unexpected Grafana error");
13 | }
14 |
15 | public GrafanaException(String message) {
16 | super(message);
17 | }
18 |
19 | public GrafanaException(String message, Throwable cause) {
20 | super(message, cause);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2.0
2 |
3 | jobs:
4 | build:
5 | docker:
6 | - image: circleci/openjdk:11.0.3-jdk-stretch
7 | steps:
8 | - checkout
9 | - restore_cache:
10 | keys:
11 | - gradle-{{ checksum "build.gradle" }}
12 | - run: gradle assemble
13 | - run: gradle run
14 | - run: gradle test
15 | - run: gradle build jacocoTestReport
16 | - run: bash <(curl -s https://codecov.io/bash)
17 | - save_cache:
18 | paths:
19 | - ~/.gradle
20 | key: gradle-{{ checksum "build.gradle" }}
21 | - store_artifacts:
22 | path: build/distributions
23 | destination: distributions
24 | - store_artifacts:
25 | path: build/libs
26 | destination: libs
--------------------------------------------------------------------------------
/src/main/java/com/grafana/api/client/models/List.java:
--------------------------------------------------------------------------------
1 | package com.grafana.api.client.models;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import lombok.experimental.Accessors;
7 |
8 | @Data
9 | @NoArgsConstructor
10 | @Accessors(fluent = true)
11 | public class List implements Serializable {
12 |
13 | private String allFormat;
14 | private long builtIn;
15 | private Current current;
16 | private String datasource;
17 | private Boolean enable;
18 | private Boolean hide;
19 | private String iconColor;
20 | private Boolean includeAll;
21 | private String label;
22 | private Boolean multi;
23 | private String name;
24 | private java.util.List