AI prompts
base on Distributed tracing without code changes. 🚀 Instantly monitor any application using OpenTelemetry and eBPF <p align="center">
<a href="https://github.com/odigos-io/odigos/actions/workflows/release.yml" target="_blank">
<img src="https://github.com/odigos-io/odigos/actions/workflows/release.yml/badge.svg" alt="Release Odigos CLI" style="margin-right: 10px; border: 1px solid #007acc; border-radius: 4px; padding: 5px;">
</a>
<a href="https://goreportcard.com/report/github.com/odigos-io/odigos/cli" target="_blank">
<img src="https://goreportcard.com/badge/github.com/odigos-io/odigos/cli" alt="Go Report Card" style="margin-right: 10px; border: 1px solid #4CAF50; border-radius: 4px; padding: 5px;">
</a>
<a href="https://godoc.org/github.com/odigos-io/odigos/cli" target="_blank">
<img src="https://godoc.org/github.com/odigos-io/odigos/cli?status.svg" alt="GoDoc" style="border: 1px solid #f39c12; border-radius: 4px; padding: 5px;">
</a>
</p>
<p align="center">
<img src="assets/logo.png" width="350" /></br>
<h2>Generate distributed traces for any application in Kubernetes without code changes.</h2>
If you find Odigos helpful, please ⭐ this repository to show your support!
</p>
<h2 align="center">
<a href="https://www.youtube.com/watch?v=nynyV7FC4VI">Demo Video</a> • <a href="https://docs.odigos.io">Documentation</a> • <a href="https://join.slack.com/t/odigos/shared_invite/zt-1d7egaz29-Rwv2T8kyzc3mWP8qKobz~A">Join Slack Community</a>
</h2>
## What is Odigos?
Odigos is an open-source distributed tracing solution that simplifyes and improves observability for Kubernetes environments. It provides instant tracing capabilities without requiring any code changes to your applications.
## Key Features
* **Code-Free Instrumentation** : Set up distributed tracing in minutes, eliminating manual code modifications.
* **Multi-Language Support** : Works with Java, Python, .NET, Node.js, and Go applications.
* **eBPF-Powered** : Utilizes eBPF technology for high-performance instrumentation of Go applications. eBPF-based instrumentation for Java, Python, and Node.js is available in the enterprise edition.
* **OpenTelemetry Compatible** : Generates traces in OpenTelemetry format for broad tool compatibility.
* **Vendor Agnostic** : Integrates with various monitoring solutions, avoiding vendor lock-in.
* **Automatic Scaling** : Manages and scales OpenTelemetry collectors based on data volume.
* **Opinionated Defaults** : Supplies common defaults and best practices out-of-the-box, requiring no deep knowledge of OpenTelemetry.
## Why Choose Odigos
1. **Simplicity** : Implement distributed tracing with minimal effort and complexity.
2. **Performance** : Separates data recording and processing to minimize runtime impact.
3. **Community-Backed** : With 3,000+ GitHub stars and a growing contributor base.
4. **Expertise** : Created by multiple maintainers of OpenTelemetry, ensuring deep integration and alignment with industry standards.
Odigos empowers platform engineers, DevOps professionals, and SREs to enhance their observability strategies quickly and effectively. It is an ideal solution for modern cloud-native environments, combining simplicity, performance, and industry expertise.
## Features
### ✨ Language Agnostic Auto-instrumentation
Odigos supports any application written in Java, Python, .NET, Node.js, and **Go**.
Historically, compiled languages like Go have been difficult to instrument without code changes. Odigos solves this problem by uniquely leveraging [eBPF](https://ebpf.io).
![Works on any application](docs/images/ui_choose_apps.png)
### 🤝 Keep your existing observability tools
Odigos currently supports all the popular managed and open-source destinations.
By producing data in the [OpenTelemetry](https://opentelemetry.io) format, Odigos can be used with any observability tool that supports OTLP.
For a complete list of supported destinations, see [here](#supported-destinations).
![Works with any observability tool](docs/images/ui_choose_dest.png)
### 🎛️ Collectors Management
Odigos automatically scales OpenTelemetry collectors based on observability data volume.
Manage and configure collectors via a convenient web UI.
![Collectors Management](docs/images/ui_overview.png)
## Installation
Installing Odigos takes less than 5 minutes and requires no code changes.
Download our [CLI](https://docs.odigos.io/installation) and run the following command:
```bash
odigos install
```
For more details, see our [quickstart guide](https://docs.odigos.io/intro).
## Supported Destinations
**For step-by-step instructions detailed for every destination, see these [docs](https://docs.odigos.io/backends).**
### Managed Destinations
| Destination | Traces | Metrics | Logs |
| ------------------------- | :------: | :-------: | :----: |
| AppDynamics | ✅ | ✅ | ✅ |
| Axiom | ✅ | | ✅ |
| AWS S3 | ✅ | | ✅ |
| Azure Blob Storage | ✅ | | ✅ |
| Causely | ✅ | | |
| Chronosphere | ✅ | ✅ | |
| Coralogix | ✅ | ✅ | ✅ |
| Datadog | ✅ | ✅ | ✅ |
| Dynatrace | ✅ | ✅ | ✅ |
| Gigapipe | ✅ | | |
| Google Cloud Monitoring | ✅ | ✅ | |
| Google Cloud Storage | ✅ | | ✅ |
| Grafana Cloud | ✅ | ✅ | ✅ |
| Honeycomb | ✅ | ✅ | ✅ |
| Last9 | ✅ | ✅ | |
| Lightstep | ✅ | | |
| Logz.io | ✅ | ✅ | ✅ |
| New Relic | ✅ | ✅ | ✅ |
| OpsVerse | ✅ | ✅ | ✅ |
| Sentry | ✅ | | |
| Splunk | ✅ | | |
| Sumo Logic | ✅ | ✅ | ✅ |
## Self-Hosted (Open Source) Destinations
| Destination | Traces | Metrics | Logs |
| --------------- | :------: | :-------: | :----: |
| ClickHouse | ✅ | ✅ | ✅ |
| Elasticsearch | ✅ | | ✅ |
| Jaeger | ✅ | | |
| Loki | | | ✅ |
| OTLP | ✅ | ✅ | ✅ |
| OTLP HTTP | ✅ | ✅ | ✅ |
| Prometheus | | ✅ | |
| Quickwit | ✅ | | |
| qryn | ✅ | ✅ | ✅ |
| SigNoz | ✅ | ✅ | ✅ |
| Tempo | ✅ | | |
Can't find the destination you need? Help us by following our quick [add new destination](https://docs.odigos.io/adding-new-dest) guide and submitting a PR.
## Contributing
Please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file for information about how to get involved. We welcome issues, questions, and pull requests. Feel free to join our active [Slack Community](https://join.slack.com/t/odigos/shared_invite/zt-1d7egaz29-Rwv2T8kyzc3mWP8qKobz~A).
## All Thanks To Our Contributors
<a href="https://github.com/odigos-io/odigos/graphs/contributors">
<img src="https://contrib.rocks/image?repo=keyval-dev/odigos" />
</a>
## License
This project is licensed under the terms of the Apache 2.0 open-source license. Please refer to [LICENSE](LICENSE) for the full terms.
", Assign "at most 3 tags" to the expected json: {"id":"4073","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"