Giter VIP home page Giter VIP logo

jaeger-kusto's Introduction

Azure Data Explorer (Kusto) gRPC backend for Jaeger

master Docker Pulls

This is a storage grpc-plugin for Jaeger end-to-end distributed tracing system.

Currently, supports version 1.31.0.

https://www.jaegertracing.io/

Installation and testing

For local testing, you need Docker and docker-compose.

First, you have to have Azure Data Explorer cluster, here's a quickstart: https://docs.microsoft.com/en-us/azure/data-explorer/create-cluster-database-portal

Then create a table:

.create table Spans (
TraceID: string,
SpanID: string,
OperationName: string,
References: dynamic,
Flags: int,
StartTime: datetime,
Duration: timespan,
Tags: dynamic,
Logs: dynamic,
ProcessServiceName: string,
ProcessTags: dynamic,
ProcessID: string
)

Then, you should create json config file:

{
  "clientId": "",
  "clientSecret": "",
  "database": "<database>",
  "endpoint": "https://<cluster>.<region>.kusto.windows.net",
  "tenantId": ""
}

Save this file as jaeger-kusto-config.json in the root of repository.

Plugin can be started in one of two modes:

  • Standalone app (as grpc server). For this mode, use docker compose --file build/server/docker-compose.yml up --build
  • Jaeger collector plugin. For this mode, use docker compose --file build/plugin/docker-compose.yml up --build

Any of docker-compose files will use Jaeger all-in-one container and start it together with Hotrod test app.

Jaeger UI will be at http://localhost:16686/, Hotrod test app will be at http://localhost:8080.

You can go to Hotrod test app and generate some spans. They will appear in Kusto approx. in 5 minutes (this can be controlled with IngestionBatching policy). After the spans have been ingested, you will see that UI works.

You can check that jaeger-kusto ingestion is working with this query:

.show commands
| where Database == '<yourdatabase>' and CommandType == 'DataIngestPull'
| top 10 by StartedOn

For production deployment we have these images:

You can view latest tag in docker hub

jaeger-kusto's People

Contributors

artemtrofimushkin avatar holyslon avatar spacentropy avatar stupidscience avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

jaeger-kusto's Issues

Prometheus metrics for plugin

We should add plugin metrics (for ex. successful_batch_upload_total, span_buffer_count_total, and so on) and export them in Prometheus format

Error while getting token : ClientSecretCredential: unable to resolve an endpoint

Hi,

I encountered an error while following the steps in the repository to set up the environment. When attempting to access the Jaeger, I received the following error message:

HTTP Error: plugin error: rpc error: code = Unknown desc = Op(OpQuery): Kind(KInternal): Error while getting token : ClientSecretCredential: unable to resolve an endpoint: server response error: Get "https://login.microsoftonline.com/tenant-guid/v2.0/.well-known/openid-configuration": dial tcp: lookup [login.microsoftonline.com](http://login.microsoftonline.com/) on [127.0.0.11:53](http://127.0.0.11:53/): server misbehaving

Steps to Reproduce:
Followed the setup instructions in the repository:

  1. I have an Azure Data Explorer cluster
  2. Save this file as jaeger-kusto-config.json in the root of the repository.
  3. use docker compose --file build/server/docker-compose.yml up --build Once this is done,
  4. I have open the Jaeger UI on http://localhost:16686/ and see the traces in the UI. [getting error while trying to access the traces in Jaeger UI] PFA screenshot.

FYI It was working as expected the first time (show trace from Azure Data Explorer in JaegerUI) and suddenly it was stopped and throw the above error.

jaeger-error-1

Please let me know if any

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.