Code Monkey home page Code Monkey logo

kuma-grafana-datasource's Introduction

kuma-grafana-datasource

A grafana datasource plugin for Kuma

Build

This datasource will enable you to do some queries to inspect Kuma. It also has a mesh-graph query type which will render a NodeGraph panel similar to what Kiali provides.

How to install

[plugins]
allow_loading_unsigned_plugins = "kumahq-kuma-datasource"

How to configure

Manually

It's as easy as any datasource, you can follow the instructions on the Grafana docs.

The configuration for the datasource will look like:

Kuma datasource configuration

You'll have to set the url to your global control plane api and pick an already configured prometheus datasource in the dropdown.

Once this is done you can go in explore and pick the kuma-datasource with the mesh-graph query type:

Mesh graph example

With provisioner

Add to the datasource configuration:

kuma >= 1.7.0

    datasources:
      - name: Prometheus
        type: prometheus
        access: proxy
        url: http://prometheus-server.mesh-observability
      - name: Kuma
        type: kumahq-kuma-datasource
        url: http://kuma-control-plane.kuma-system:5681
        jsonData:
          prometheusDataSourceId: "1"

kuma < 1.7.0

    datasources:
      - name: Prometheus
        type: prometheus
        access: proxy
        url: http://prometheus-server.kuma-metrics
      - name: Kuma
        type: kumahq-kuma-datasource
        url: http://kuma-control-plane.kuma-system:5681
        jsonData:
          prometheusDataSourceId: "1"

With kumactl

kumactl >= 1.7.0

If you use kumactl install observability with a version of kumactl >= 1.7.0 the plugin will be setup automatically.

kumactl 1.3.0-1.6.*

If you use kumactl install metrics with a version of kumactl 1.3.0-1.6.* the plugin will be setup automatically.

Future features

  • Add links for logs and traces.
  • Add possibility to filter services.
  • Add query type for dataplane inspection.
  • Support non HTTP services.

File an issue if you want something :).

kuma-grafana-datasource's People

Contributors

bartsmykla avatar dependabot[bot] avatar github-actions[bot] avatar jakubdyszkiewicz avatar lahabana avatar michaelbeaumont avatar mmorel-35 avatar slonka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuma-grafana-datasource's Issues

ARM64 build

Description

It'd be great if there was an official ARM64 build of this plugin, please?

Support TCP on serviceMap

Description

Currently we only support http for serviceMap it would be nice to also support TCP.
Probably need to figure out how to handle mixmode.

Need pagination to get service-insights

Description

I found problem: when grafana send api-request on Kuma Control Plane API in kuma-mesh with hundreds dataplanes, it get only 100 first sorted alphabetically services (Kuma API pagination):

curl 10.0.3.1:5681/meshes/default/service-insights

response:

{
 "total": 325,
 "items": [..]
 ],
 "next": "http://10.0.3.1:5681/meshes/default/service-insights?offset=100"
}

Accordingly, the Mesh Map in grafana almost does not work, as there are not enough relationships to form it.
kuma doc says that pagination works on 1000 elements (default - 1000).

If the implementation of pagination takes time, then you can make a fix, just add a parameter like ?size=1000
I think this simple "crutch" will not affect the work, since now the service map does not work in large mesh networks anyway.

test

Description

test

Allow User Configurable Time Intervals and Prevent Blank Data Display in Kuma Datasource Grafana Plugin

Description

Upon inspecting the plugin code, specifically in src/datasource.ts at:
https://github.com/kumahq/kuma-grafana-datasource/tree/master

In the meshGraphQuery method of the DataSource class, there's this segment:

typescript

let interval = (request.intervalMs - (request.intervalMs % 60000)) / 60000;
if (interval === 0) {
interval = 1;
}

I believe this code determines the time interval for the queries sent to Prometheus. The current behavior seems to round it to the nearest minute and defaults to 1 minute if the interval is zero.

Feature Requests:

User Configurable Time Intervals: Allow users to configure the time interval instead of it being fixed. This ensures that users can set the interval based on their specific needs.

Avoid Blank Data Display: Alter the plugin behavior so that even if there's no traffic, it doesn't display blank data. The service map should provide some context or default view rather than appearing empty.

Potential Solutions:

Introduce a configuration setting in the plugin settings where users can specify their desired interval.
Incorporate a fallback visualization or a message indicating "No traffic data" rather than showing an empty graph, giving users a clearer indication of the situation.

Benefits:

Enhanced user customization leading to a more personalized experience.
Improved UX by ensuring users are not met with blank, uninformative screens.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.