Grafana agrega el tablero y la URL de acceso a través del resto

objetivos

  • Configurar Grafana para permitir el acceso anónimo
  • Registre el tablero a través de la interfaz de descanso
  • Obtener la URL del tablero para la visualización

configuración de instalación de mac

  • instalación
brew update
brew install grafana
  • Configure el acceso anónimo: /usr/local/etc/grafana/grafana.ini
[auth]
# 要删掉前边的分号
disable_login_form = true

[auth.anonymous]
enabled = true
org_name = Main Org.
org_role = Viewer
  • Iniciar y detener
// 启动
brew services start grafana

// 关闭
brew services stop grafana

// 重启
brew services restart grafana

Registrarse en el panel

https://github.com/grafana/grafana/blob/master/docs/sources/http_api/dashboard.md

  • Publicar URL de solicitud: / api / dashboards / db

  • Primero debe crear una clave Api, cree una en Configuración -> Claves API, obtendrá una cadena, que se agrega al encabezado de la solicitud de publicación.

    https://blog.csdn.net/u012062455/article/details/79214927

  • Se explican los siguientes elementos importantes

    • target.target: serie de tiempo de consulta
    • id: la identificación del panel en una única instancia de Grafana
    • uid: el uidid del panel en varias instancias de Grafana, simplemente haga que los dos sean iguales
    • title: nombre del tablero
    • refrescar: frecuencia de refresco
    • tiempo: período de tiempo de consulta, como los últimos cinco minutos
    • panel: un tablero de series de tiempo, los paneles en este ejemplo son gráficos de líneas
      • fuente de datos: fuente de datos, debe crearse de antemano
      • gridPos: La posición del tablero, xey son la posición inicial, h es la altura y w es el ancho. Varios paneles deben componerse por sí mismos.
      • título: nombre del panel
  • Después del registro, puede ver el panel a través de http: // ip: 3000 / d / uid / title.

  • Crea el cuerpo de la solicitud de publicación del panel

{
  "dashboard": {
    "id": "imei",
    "uid": "imei",
    "title": "userName",
    "timezone": "browser",
    "refresh": "5s",
    "schemaVersion": 16,
    "time": {
    "from": "now-5m",
    "to": "now"
    },
    "panels": [
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "IoTDB-Raspberry",
      "fill": 1,
      "gridPos": {
        "h": 6,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 2,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "refId": "A",
          "target": "raspberry.pi1.distance",
          "type": "timeserie"
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeShift": null,
      "title": "超声波测距(米)",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    }
  ],
    "version": 0
  },
  "folderId": 0,
  "overwrite": true
}

Java construye una solicitud de publicación para enviar


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;


		URL url = new URL(getGrafanaUrl);
        URLConnection connection = url.openConnection();
        connection.setRequestProperty("accept", "application/json");
        connection.setRequestProperty("connection", "Keep-Alive");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
       
        // apiKey 是上边生成的那个
        connection.setRequestProperty("Authorization", "Bearer " + apiKey);
        connection.setDoInput(true);
        connection.setDoOutput(true);

        // request 是上边那个json
        try (PrintWriter out = new PrintWriter(connection.getOutputStream())){
            out.print(request.toString());
            out.flush();
        }

        try (BufferedReader in = new BufferedReader(
            new InputStreamReader(connection.getInputStream()))) {
            StringBuilder result = new StringBuilder();
            String line;
            while ((line = in.readLine()) != null) {
                result.append(line);
            }
            logger.info("Received response: {}", result);
        }

URL del panel

La URL del panel de Grafana tiene el mismo estilo http: // localhost: 3000 / d / good / goodgood? Refresh = 5s & orgId = 1

Solo reemplaza los buenos con los tuyos

Supongo que te gusta

Origin blog.csdn.net/qiaojialin/article/details/89482394
Recomendado
Clasificación