Adding New Observability Destination
There are tens if not hundreds of different observability destinations. Odigos’s goal is to provide a seamless and easy way to ship observability data to any one of them.
In this guide, you will learn how to contribute a new destination to Odigos. We will create a new dummy destination called mydest
.
Creating a new destination involves these steps:
- Extending the UI for the new destination
- Adding the collector configuration for the new destination
- Generating the documentation for the new destination
User Interface
For our new destination to be visible in the UI, we need to define the destination metadata and fields in YAML format:
Add Logo
Go to destinations/logos/
directory and add your logo.
- Must be in SVG format
- Example:
mydest.svg
Add Destination Metadata
Collector Configuration
Now that our new vendor can be persisted/loaded in the Kubernetes data store, we need to implement the collector configuration.
Add Destination Type
Go to common/dests.go
and add your new destination to the DestinationType
enum.
- Make sure the value is the same as the
type
property inmydest.yaml
Add Collector Config
Add Available Config
Go to common/config/root.go
and add the new destination to the availableConfigers
list.
- Example:
&MyDest{}
Generating Documentation
Install Python
Make sure you have Python installed on your system.
Generate Documentation
Go to docs
directory, and run:
Edit Documentation
The documentation has been generated in the docs/backends
directory. Feel free to add any additional content to the generated file.
- Edit only between the
!! START CUSTOM EDIT !!
and!! END CUSTOM EDIT !!
comments - Example:
mydest.mdx
Update README.md
Go to README.md
and add your new destination to the list of destinations.
That’s it! Now you can use your new destination in the UI and send data to it.
Please submit a PR to the odigos git repository.