-
Notifications
You must be signed in to change notification settings - Fork 209
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add [Last9](https://last9.io) as a destination. Last9 supports all telemetry signals [Logs](https://last9.io/logs), [Metrics](https://last9.io/metrics/) and [Traces](https://last9.io/traces/) --------- Co-authored-by: Amir Blum <amirgiraffe@gmail.com> Co-authored-by: Ben Elferink <ben.elferink@icloud.com>
- Loading branch information
1 parent
c3b9422
commit 36f258c
Showing
8 changed files
with
168 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package config | ||
|
||
import ( | ||
"errors" | ||
|
||
"github.com/odigos-io/odigos/common" | ||
) | ||
|
||
const ( | ||
l9OtlpEndpointKey = "LAST9_OTLP_ENDPOINT" | ||
l9OtlpAuthHeaderKey = "LAST9_OTLP_BASIC_AUTH_HEADER" | ||
) | ||
|
||
type Last9 struct{} | ||
|
||
func (m *Last9) DestType() common.DestinationType { | ||
// DestinationType defined in common/dests.go | ||
return common.Last9DestinationType | ||
} | ||
|
||
func (m *Last9) ModifyConfig(dest ExporterConfigurer, currentConfig *Config) error { | ||
config := dest.GetConfig() | ||
l9OtlpEndpoint, exists := config[l9OtlpEndpointKey] | ||
if !exists { | ||
return errors.New("Last9 OpenTelemetry Endpoint key(\"LAST9_OTLP_ENDPOINT\") not specified, Last9 will not be configured") | ||
} | ||
|
||
// to make sure that the exporter name is unique, we'll ask a ID from destination | ||
exporterName := "otlp/last9-" + dest.GetID() | ||
currentConfig.Exporters[exporterName] = GenericMap{ | ||
"endpoint": l9OtlpEndpoint, | ||
"headers": GenericMap{ | ||
"Authorization": "${LAST9_OTLP_BASIC_AUTH_HEADER}", | ||
}, | ||
} | ||
|
||
// Modify the config here | ||
if isTracingEnabled(dest) { | ||
tracesPipelineName := "traces/last9-" + dest.GetID() | ||
currentConfig.Service.Pipelines[tracesPipelineName] = Pipeline{ | ||
Exporters: []string{exporterName}, | ||
} | ||
} | ||
|
||
if isMetricsEnabled(dest) { | ||
metricsPipelineName := "metrics/last9-" + dest.GetID() | ||
currentConfig.Service.Pipelines[metricsPipelineName] = Pipeline{ | ||
Exporters: []string{exporterName}, | ||
} | ||
} | ||
|
||
if isLoggingEnabled(dest) { | ||
logsPipelineName := "logs/last9-" + dest.GetID() | ||
currentConfig.Service.Pipelines[logsPipelineName] = Pipeline{ | ||
Exporters: []string{exporterName}, | ||
} | ||
} | ||
|
||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
apiVersion: internal.odigos.io/v1beta1 | ||
kind: Destination | ||
metadata: | ||
type: last9 | ||
displayName: Last9 | ||
category: managed | ||
spec: | ||
image: last9.svg | ||
signals: | ||
traces: | ||
supported: true | ||
metrics: | ||
supported: true | ||
logs: | ||
supported: true | ||
fields: | ||
- name: LAST9_OTLP_ENDPOINT | ||
displayName: Last9 OpenTelemetry Endpoint | ||
componentType: input | ||
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 ..." |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
--- | ||
title: "Last9" | ||
--- | ||
|
||
## Obtaining Last9 OpenTelemetry Endpoint and Basic Auth Header | ||
|
||
[Click here](https://app.last9.io/integrations?category=all&integration=OpenTelemetry) to visit the Last9 OpenTelemetry integration page. | ||
|
||
<Frame> | ||
<img src="/backends/images/last9.png" alt="OpenTelemetry integration in Last9" /> | ||
</Frame> | ||
|
||
## Configuring Last9 Backend | ||
|
||
- **Endpoint** - Last9 OpenTelemetry Endpoint obtained in above step. | ||
- **Authorization Header**: Last9 OpenTelemetry Basic Auth Header obtained in above step. | ||
|
||
## Adding a Destination to Odigos | ||
|
||
Odigos makes it simple to add and configure destinations, allowing you to select the specific signals [traces/logs/metrics] that you want to send to each destination. There are two primary methods for configuring destinations in Odigos: | ||
|
||
1. **Using the UI** | ||
To add a destination via the UI, follow these steps: | ||
- Use the Odigos CLI to access the UI: [Odigos UI](https://docs.odigos.io/cli/odigos_ui) | ||
```bash | ||
odigos ui | ||
``` | ||
- In the left sidebar, navigate to the `Destination` page. | ||
|
||
- Click `Add New Destination` | ||
|
||
- Select `Last9` and follow the on-screen instructions. | ||
|
||
|
||
|
||
2. **Using kubernetes manifests** | ||
|
||
Save the YAML below to a file (e.g., `destination.yaml`) and apply it using `kubectl`: | ||
|
||
```bash | ||
kubectl apply -f destination.yaml | ||
``` | ||
|
||
|
||
```yaml | ||
apiVersion: odigos.io/v1alpha1 | ||
kind: Destination | ||
metadata: | ||
name: last9-example | ||
namespace: odigos-system | ||
spec: | ||
data: | ||
LAST9_OTLP_ENDPOINT: <Last9 OpenTelemetry Endpoint> | ||
destinationName: last9 | ||
secretRef: | ||
name: last9-secret | ||
signals: | ||
- TRACES | ||
- METRICS | ||
- LOGS | ||
type: last9 | ||
|
||
--- | ||
apiVersion: v1 | ||
data: | ||
LAST9_OTLP_BASIC_AUTH_HEADER: <base64 Basic Auth Header> | ||
kind: Secret | ||
metadata: | ||
name: last9-secret | ||
namespace: odigos-system | ||
type: Opaque | ||
``` |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters