-
Notifications
You must be signed in to change notification settings - Fork 55
Integration Creation Guide
An integration has four parts:
- A configuration that ties together the following three parts with some metadata.
- A schema that defines the data format, currently based on SS4O. Docs
- Assets that are loaded into Dashboards via the Saved Object API.
- In the future, more asset types will be supported, but for the moment we only support saved objects.
- Statics: logos, screenshots, the works.
For some examples of integrations, see the current list in the Dashboards-Observability repo. The Nginx integration in particular is a prototypical example that we’ll reference throughout the guide.
Getting a working pair of schemas and assets is challenging. Here’s 7 general steps to get it done. We assume you are trying to create an integration using an existing dashboards on the web (e.g. Beats) instead of making one from scratch.
Follow the docs from some target project to set up a sample infrastructure.
In particular, you want records as they’re submitted to OpenSearch, in JSON. The tooling in the next step generally depends on the data being in a JSON format.
In the future this can be automated with a code generation framework, but the general idea is to use some agent to make OTEL-compliant or ECS-compliant data. Some options:
- Jaeger
- Fluentbit
- Data Prepper
- OTEL Collector
- Logstash
For determining what actually needs to be done for conversion, there is an open PR for a tool that lets you quickly check how your data differs from a selected SS4O schema. This can be a valuable debugging tool for making an SS4O converter.
Docker is ideal here, if possible. Strictly speaking, you only need this for testing, making a “correct” alternative infrastructure with other users is out of scope. The goal is to just get schema-compliant data stored in an OpenSearch data stream.
In the future this can be automated. For now, I think the main idea is to go through the panels in the existing dashboard(s) and update their queries for the new schema. If a field is needed in the panel that isn’t present anywhere in the schema, either remove it or ask @YANG-DB about adding it to the schema.
New visualizations should be put in the Visualization Catalog in opensearch-catalog.
In the future this can be automated, but generally, model it on some of the existing integrations. Put all the relevant info in the directory and write a config.
Try using the integration in OpenSearch Dashboards with the Integrations Plugin. Make sure all the visualizations work, the logo and screenshots render correctly, no weird display bugs, and similar things. This is also a good opportunity to test the integrations plugin for bugs.
A simple sanity check is to use the UI’s “try it” button. There should be no visible errors when the button is pressed and the integration’s dashboard is opened.
Screen.Recording.2023-08-04.at.11.42.14.AM.mov
This next page describes our planned integration content
If you would like to have your integration added here - please create an issue and lets start working together !