Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GEN-2217]: enhance destinations documentation auto-generation script #2257

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d2e93ec
feat: enhance backends docs script; full doc generation (create), inc…
BenElferink Jan 17, 2025
340476c
feat: add backends-overview generation
BenElferink Jan 17, 2025
954ce1f
fix: improve field documentation formatting and remove secret field r…
BenElferink Jan 17, 2025
915ecb2
feat: enhance field type handling and logo image size in documentatio…
BenElferink Jan 17, 2025
e8c346d
feat: enhance documentation generation with category and supported si…
BenElferink Jan 17, 2025
f9601fb
refactor: generate docs
BenElferink Jan 18, 2025
bd0a932
chore: cleanup customs
BenElferink Jan 18, 2025
43bc067
feat: update documentation for adding new observability destinations …
BenElferink Jan 18, 2025
ed6efc1
chore: remove clickable logo links from backend documentation
BenElferink Jan 18, 2025
9c13e83
fix: typo
BenElferink Jan 18, 2025
eb971ab
docs: update comment to clarify skipped field-values in generate_fiel…
BenElferink Jan 18, 2025
ef90183
docs: add table for "Allowed properties for Destination Fields"
BenElferink Jan 18, 2025
8b56d6f
Merge branch 'main' of github.com:odigos-io/odigos into gen-2217
BenElferink Jan 18, 2025
1619b69
docs: update quickstart next-steps to streamline backend selection in…
BenElferink Jan 18, 2025
0e45b74
docs: refine steps for adding a new destination and update documentat…
BenElferink Jan 18, 2025
68296c5
docs: simplify step titles for adding a new destination
BenElferink Jan 18, 2025
4551032
chore: overview cleanup
BenElferink Jan 18, 2025
7392fa5
nit: rename file for consistency
BenElferink Jan 18, 2025
d82db6f
refactor: simplify python script
BenElferink Jan 18, 2025
d97e2f5
fix: commented "secretRef" in kubectl apply
BenElferink Jan 18, 2025
db8ad41
Merge branch 'main' into gen-2217
BenElferink Jan 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions destinations/data/appdynamics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ spec:
componentProps:
type: text
required: false
tooltip: 'Will define a namespace in AppDynamics'
- name: APPDYNAMICS_ACCOUNT_NAME
displayName: Account Name
componentType: input
Expand Down
4 changes: 4 additions & 0 deletions destinations/data/s3.yaml → destinations/data/awss3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ spec:
componentProps:
type: text
required: true
tooltip: The name of the bucket where the data will be stored
- name: S3_REGION
displayName: Bucket Region
componentType: input
componentProps:
type: text
required: true
tooltip: The AWS region where the bucket is located
- name: S3_PARTITION
displayName: Time granularity of S3 Bucket
componentType: dropdown
Expand All @@ -34,6 +36,7 @@ spec:
- minute
- hour
required: true
tooltip: Wether a new subdirectory should be created every minute or every hour
initialValue: minute
- name: S3_MARSHALER
displayName: Marshaller (Data Format)
Expand All @@ -43,4 +46,5 @@ spec:
- otlp_json
- otlp_proto
required: true
tooltip: The format in which the data will be encoded. It can be either `otlp_json` or `otlp_proto`. Default is `otlp_json`
initialValue: otlp_json
4 changes: 4 additions & 0 deletions destinations/data/betterstack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,7 @@ spec:
componentProps:
type: password
required: true
note: |
We handle the endpoint internally, so you don't need to provide it.
- The endpoint for metrics is `https://in-otel.logs.betterstack.com/metrics`
- The endpoint for logs is `https://in-otel.logs.betterstack.com:443`
2 changes: 2 additions & 0 deletions destinations/data/causely.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ spec:
componentProps:
type: text
required: true
placeholder: http://mediator.causely:4317
tooltip: 'The endpoint URL is the combined `<protocol>://<hostname>:<port>` to access your Causely Mediator service. Protocol should be `http`; using `https` or omitting it will automatically be converted to `http`. Hostname should typically follow the format: `mediator.<namespace>`. Namespace is the k8s namespace where the Causely Mediator service is deployed. Port is optional and defaults to the default OTLP gRPC port `4317`'
4 changes: 2 additions & 2 deletions destinations/data/chronosphere.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ spec:
componentProps:
type: text
required: true
tooltip: 'Company domain in Chronosphere, can be found in the URL (my-company.chronosphere.io)'
tooltip: 'Company domain in Chronosphere, can be found in the URL of the Chronosphere UI. For example, if your URL is `https://demo-sandbox.chronosphere.io/`, then your company domain is `demo-sandbox`'
- name: CHRONOSPHERE_API_TOKEN
displayName: API Token
componentType: input
componentProps:
type: password
required: true
tooltip: 'API token generated from your Chronosphere service account in the Chronosphere admin UI'
tooltip: 'API token generated from your Chronosphere service account in the Chronosphere UI, you should login to your Chronosphere admin account click the `Platform` menu on the left side of the screen, then click `Service Accounts` and create a new service account'
secret: true
6 changes: 3 additions & 3 deletions destinations/data/clickhouse.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
type: text
required: true
placeholder: 'http://host:port'
tooltip: 'Clickhouse server address'
tooltip: 'The ClickHouse endpoint is the URL where the ClickHouse server is listening for incoming connections.'
- name: CLICKHOUSE_USERNAME
displayName: Username
componentType: input
Expand All @@ -42,15 +42,15 @@ spec:
componentType: checkbox
componentProps:
required: true
tooltip: 'Should the destination create the schema for you?'
tooltip: 'Should the destination create the schema for you? Set to `false` if you manage your own schema, or `true` to have Odigos create the schema for you'
initialValue: true
- name: CLICKHOUSE_DATABASE_NAME
displayName: Database Name
componentType: input
componentProps:
type: text
required: true
tooltip: 'Name of the ClickHouse Database to use, which you should have created already'
tooltip: 'The name of the Clickhouse Database where the telemetry data will be stored. The Database will not be created when not exists, so make sure you have created it before'
initialValue: otel
- name: CLICKHOUSE_TRACES_TABLE
displayName: Traces Table
Expand Down
4 changes: 4 additions & 0 deletions destinations/data/coralogix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ spec:
componentProps:
type: password
required: true
tooltip: 'The Send-Your-Data API Key is used to authenticate the data sent to Coralogix.'
secret: true
- name: CORALOGIX_DOMAIN
displayName: Domain
Expand All @@ -33,15 +34,18 @@ spec:
- coralogix.in
- coralogixsg.com
required: true
tooltip: 'The Coralogix domain to which you want to send the data.'
- name: CORALOGIX_APPLICATION_NAME
displayName: Application Name
componentType: input
componentProps:
type: text
required: true
tooltip: 'The name of the application that sends the data to Coralogix.'
- name: CORALOGIX_SUBSYSTEM_NAME
displayName: Subsystem Name
componentType: input
componentProps:
type: text
required: true
tooltip: 'The name of the subsystem that sends the data to Coralogix.'
2 changes: 2 additions & 0 deletions destinations/data/dash0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ spec:
componentProps:
type: text
required: true
tooltip: The format is `host:port`. Host is required, located in Dash0 UI (OpenTelemetry Collector). Port is optional and defaults to the default OTLP gRPC port `4317`.
- name: DASH0_TOKEN
displayName: Dash0 Bearer Token
componentType: input
secret: true
componentProps:
type: password
required: true
tooltip: Located in Dash0 UI (OpenTelemetry Collector).
4 changes: 3 additions & 1 deletion destinations/data/datadog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ spec:
- name: DATADOG_API_KEY
displayName: API Key
componentType: input
secret: true
componentProps:
type: password
required: true
secret: true
tooltip: The API key for your Datadog account.
- name: DATADOG_SITE
displayName: Site
componentType: dropdown
Expand All @@ -33,3 +34,4 @@ spec:
- ddog-gov.com
- ap1.datadoghq.com
required: true
tooltip: The datadog site you are using (the url of the datadog site you are using).
1 change: 1 addition & 0 deletions destinations/data/dynatrace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ spec:
componentProps:
type: text
required: true
placeholder: https://{your-environment-id}.live.dynatrace.com
- name: DYNATRACE_API_TOKEN
displayName: API Access Token
componentType: input
Expand Down
10 changes: 5 additions & 5 deletions destinations/data/elasticsearch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,21 @@ spec:
type: text
required: true
placeholder: 'http://host:port'
tooltip: 'Elasticsearch endpoint. port defaults to 9200 if not specified'
tooltip: 'Elasticsearch endpoint. Port defaults to `9200` if not specified'
- name: ES_TRACES_INDEX
displayName: Traces Index
componentType: input
initialValue: 'trace_index'
componentProps:
type: text
placeholder: 'trace_index'
tooltip: 'The name of the index where traces will be stored. Defaults to trace_index'
tooltip: 'The name of the index where traces will be stored'
- name: ES_LOGS_INDEX
displayName: Logs Index
componentType: input
initialValue: 'log_index'
componentProps:
type: text
placeholder: 'log_index'
tooltip: 'The name of the index where logs will be stored. Defaults to log_index'
tooltip: 'The name of the index where logs will be stored.'
- name: ELASTICSEARCH_BASIC_AUTH_ENABLED
displayName: Enable HTTP Basic Authentication
componentType: checkbox
Expand Down
10 changes: 7 additions & 3 deletions destinations/data/gigapipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,32 +16,36 @@ spec:
fields:
- name: QRYN_API_SECRET
displayName: API Secret
secret: true
componentType: input
componentProps:
type: password
required: true
secret: true
tooltip: The API Secret for your Gigapipe Account
- name: QRYN_API_KEY
displayName: API Key
componentType: input
componentProps:
type: password
required: true
tooltip: The API Token for your Gigapipe Account
- name: QRYN_URL
displayName: API Url
componentType: input
componentProps:
type: text
required: true
tooltip: The API Endpoint for your Gigapipe Account
placeholder: https://your-account.gigapipe.com
- name: QRYN_RESOURCE_TO_TELEMETRY_CONVERSION
displayName: Convert container attributes to labels
componentType: checkbox
initialValue: true
componentProps:
required: false
initialValue: Yes
- name: QRYN_ADD_EXPORTER_NAME
displayName: Add exporter name to labels
componentType: checkbox
initialValue: true
componentProps:
required: false
initialValue: Yes
8 changes: 4 additions & 4 deletions destinations/data/grafanacloudloki.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ spec:
componentProps:
type: text
required: true
placeholder: https://logs-prod-012.grafana.net
tooltip: The endpoint of your Grafana Cloud Loki instance
placeholder: https://logs-prod-{REGION/SHARD}.grafana.net/loki/api/v1/push
- name: GRAFANA_CLOUD_LOKI_USERNAME
displayName: Username
componentType: input
componentProps:
type: text
required: true
placeholder: 1234567
tooltip: The user of your Grafana Cloud Loki instance
tooltip: You can find the loki username in the "Grafana Data Source settings" section as "User" value. The username is a number.
- name: GRAFANA_CLOUD_LOKI_PASSWORD
displayName: Password (Api Token)
secret: true
componentType: input
componentProps:
type: password
required: true
tooltip: This field is refered to as "password" or "Grafana.com API Token" in the Grafana Cloud UI. You can manage tokens in your "Account Settings" page under the "SECURITY" section in the "Access Policies" page. Make sure your token scope includes `logs:write` scope
placeholder: glc_eyJvIj...
tooltip: Grafana Cloud API Token with 'logs:write' permission
secret: true
- name: GRAFANA_CLOUD_LOKI_LABELS
displayName: Labels
componentType: multiInput
Expand Down
10 changes: 5 additions & 5 deletions destinations/data/grafanacloudprometheus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ spec:
componentProps:
type: text
required: true
placeholder: 'e.g https://prometheus-us-central1.grafana.net/api/prom/push'
tooltip: 'Grafana Cloud Prometheus remote write endpoint'
placeholder: 'https://{hostname}.grafana.net/api/prom/push'
tooltip: This is the URL of the Prometheus service. From the grafana cloud UI, Prometheus page, make sure you copy the URL from “Remote Write Endpoint” section, and not the first Endpoint which is used for queries
- name: GRAFANA_CLOUD_PROMETHEUS_USERNAME
displayName: Username / Instance ID
componentType: input
componentProps:
type: text
required: true
placeholder: '12345678'
tooltip: 'Grafana Cloud Prometheus instance ID'
tooltip: 'You can find the Username / Instance ID on the Prometheus page. Value is a number.'
- name: GRAFANA_CLOUD_PROMETHEUS_PASSWORD
displayName: Password / Api Token
secret: true
componentType: input
componentProps:
type: password
required: true
tooltip: This field is refered to as "password" or "Grafana.com API Token" in the Grafana Cloud UI. You can manage tokens in your "Account Settings" page under the "SECURITY" section in the "Access Policies" page. Make sure your token scope includes `metrics:write` scope.
placeholder: 'glc_eyJvIj...'
tooltip: "Grafana Cloud API Token with 'metrics:write' permission"
secret: true
- name: PROMETHEUS_RESOURCE_ATTRIBUTES_LABELS
displayName: Resource Attributes Labels
componentType: multiInput
Expand Down
9 changes: 7 additions & 2 deletions destinations/data/grafanacloudtempo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,26 @@ spec:
supported: false
fields:
- name: GRAFANA_CLOUD_TEMPO_ENDPOINT
displayName: Endpoint (host:port)
displayName: Endpoint
componentType: input
componentProps:
type: text
required: true
tooltip: This is the URL of the Tempo service, in the form of `host:port`. You can find the endpoint under the "Sending data to Tempo" section.
placeholder: tempo-us-central1.grafana.net:443
- name: GRAFANA_CLOUD_TEMPO_USERNAME
displayName: Username
componentType: input
componentProps:
type: text
required: true
tooltip: You can find the username in the "Sending data to Tempo" section under the "basic_auth" yaml field. The username is a number.
- name: GRAFANA_CLOUD_TEMPO_PASSWORD
displayName: Password (Api Token)
secret: true
componentType: input
componentProps:
type: password
required: true
secret: true
tooltip: This field is refered to as "password" or "Grafana.com API Token" in the Grafana Cloud UI. You can manage tokens in your "Account Settings" page under the "SECURITY" section in the "Access Policies" page. Make sure your token scope includes `traces:write` scope.
placeholder: 'glc_eyJvIj...'
2 changes: 1 addition & 1 deletion destinations/data/groundcover.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spec:
componentProps:
type: text
required: true
tooltip: 'Your inCloud Site is part of the configuration provided to you by groundcover when setting up the managed inCloud backend.'
tooltip: The format is `host:port`. Host is required, also known as your `inCloud_Site`, it is part of the configuration provided to you by Groundcover when setting up inCloud Managed. Port is optional, and defaults to the default OpenTelemetry gRPC port `4317`.
- name: GROUNDCOVER_API_KEY
displayName: Groundcover API Key
componentType: input
Expand Down
1 change: 1 addition & 0 deletions destinations/data/honeycomb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ spec:
- api.honeycomb.io
- api.eu1.honeycomb.io
required: true
tooltip: Choose one of the endpoints in the dropdown (`api.honeycomb.io` is the US instance, `api.eu1.honeycomb.io` is EU instance)
3 changes: 3 additions & 0 deletions destinations/data/hyperdx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ spec:
componentProps:
type: password
required: true
note: |
We handle the endpoint internally, so you don't need to provide it.
- The endpoint is `in-otel.hyperdx.io:4317`
7 changes: 3 additions & 4 deletions destinations/data/jaeger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ spec:
displayName: Jaeger OTLP gRPC Endpoint
componentType: input
componentProps:
type: text
required: true
tooltip: The format is `host:port`, host is required, port is optional and defaults to the default OTLP gRPC port `4317`
- name: JAEGER_TLS_ENABLED
displayName: Enable TLS
componentType: checkbox
initialValue: false
componentProps:
required: false
tooltip: 'Secure connection (Transport Layer Security)'
tooltip: 'Secure connection'
customReadDataLabels:
- condition: 'true'
title: 'TLS'
Expand All @@ -38,10 +38,9 @@ spec:
displayName: Certificate Authority
componentType: textarea
componentProps:
type: text
required: false
placeholder: '-----BEGIN CERTIFICATE-----'
tooltip: 'When using TLS, provide the CA certificate to verify the server. If empty uses system root CA'
tooltip: 'When using TLS, provide the CA certificate in PEM format to verify the server. If empty uses system root CA'
renderCondition: ['JAEGER_TLS_ENABLED', '==', 'true']
hideFromReadData: ['true']
testConnectionSupported: true
3 changes: 3 additions & 0 deletions destinations/data/kloudmate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ spec:
componentProps:
type: password
required: true
note: |
We handle the endpoint internally, so you don't need to provide it.
- The endpoint is `https://otel.kloudmate.com:4318`
3 changes: 1 addition & 2 deletions destinations/data/last9.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,11 @@ spec:
componentProps:
type: text
required: true
tooltip: 'Last9 OpenTelemetry Endpoint. Can be found at https://app.last9.io/integrations?category=all&integration=OpenTelemetry'
- name: LAST9_OTLP_BASIC_AUTH_HEADER
displayName: Basic Auth Header
componentType: input
secret: true
componentProps:
type: password
required: true
placeholder: "Basic ..."
placeholder: 'Basic ...'
Loading
Loading