diff --git a/docs/docs/configuration/connecting-to-data-stores/azure-app-insights.md b/docs/docs/configuration/connecting-to-data-stores/azure-app-insights.md new file mode 100644 index 0000000000..9b3af272f2 --- /dev/null +++ b/docs/docs/configuration/connecting-to-data-stores/azure-app-insights.md @@ -0,0 +1,93 @@ +# Azure App Insights + +If you want to use [Azure App Insights](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview) as the trace data store, you can use the native connection from Tracetest to pull telemetry data. + +:::tip +Examples of configuring Tracetest with Azure App Insights can be found in the [`examples` folder of the Tracetest GitHub repo](https://github.com/kubeshop/tracetest/tree/main/examples). +::: + +## Direct Connection - Configure Tracetest to Use Azure App Insights as a Trace Data Store + +Configure Tracetest to be aware that it has to fetch trace data from Azure App Insights. + +Tracetest uses the Golang [Azure SDK](https://learn.microsoft.com/en-us/azure/developer/go/) library to pull to fetch trace data. + +### Tracetest Direct Connection to Azure App Insights with the Web UI + +In the Web UI, (1) open Settings, and, on the (2) Configure Data Store tab, select (3) Azure App Insights. + +![Azure App Insights Direct Connection Settings](../img/appinsights-direct.png) + +From the configuration page, add your [App Insights API Access Token](https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-azure-ad-api). Or if you are running Tracetest from a authorized container, you can use the default Active Directory Authentication. + +Finally, add the resource ARM ID for the Azure App Insights instance. + +### Tracetest Direct Connection to Azure App Insights with the CLI + +Or, if you prefer using the CLI, you can use this file config. + +```yaml +type: DataStore +spec: + name: AzureAppInsights + type: azureappinsights + default: true + azureappinsights: + connectionType: direct + resourceArmId: + accessToken: + useAzureActiveDirectoryAuth: false +``` + +Run this command in the terminal and specify the file above. + +```bash +tracetest apply datastore -f my/data-store/file/location.yaml +``` + + + + +## OpenTelemetry Collector + +You can configure Tracetest to listen for incoming telemetry data from ports `4317` and `4318` for gRPC and REST accordingly, giving you the option to stream the information to both Azure App Insights and Tracetest at the same time. + +:::tip +Need help configuring the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector-contrib) to send trace data from your application to Azure App Insights? Read more in [the reference page here](../opentelemetry-collector-configuration-file-reference). +::: + +### Tracetest OpenTelemetry Collector connection to Azure App Insights with the Web UI + +In the Web UI, (1) open Settings, and, on the (2) Configure Data Store tab, select (3) Azure App Insights, (4) Select Open Telemetry Collector as Connection Type. + +![Azure App Insights Otel Connection Settings](../img/appinsights-otel.png) + +From the configuration page, copy and customize the OpenTelemetry configuration YAML including the instrumentation key. + +### Tracetest OpenTelemetry Collector connection to Azure App Insights with the CLI + +Or, if you prefer using the CLI, you can use this file config. + +```yaml +type: DataStore +spec: + name: AzureAppInsights + type: azureappinsights + default: true + azureappinsights: + connectionType: collector + useAzureActiveDirectoryAuth: false +``` + +Run this command in the terminal and specify the file above. + +```bash +tracetest apply datastore -f my/data-store/file/location.yaml +``` + + + diff --git a/docs/docs/configuration/img/appinsights-direct.png b/docs/docs/configuration/img/appinsights-direct.png new file mode 100644 index 0000000000..279bd28b91 Binary files /dev/null and b/docs/docs/configuration/img/appinsights-direct.png differ diff --git a/docs/docs/configuration/img/appinsights-otel.png b/docs/docs/configuration/img/appinsights-otel.png new file mode 100644 index 0000000000..aa214bcbb8 Binary files /dev/null and b/docs/docs/configuration/img/appinsights-otel.png differ diff --git a/docs/docs/configuration/opentelemetry-collector-configuration-file-reference.md b/docs/docs/configuration/opentelemetry-collector-configuration-file-reference.md index f45d70e13b..134efa670a 100644 --- a/docs/docs/configuration/opentelemetry-collector-configuration-file-reference.md +++ b/docs/docs/configuration/opentelemetry-collector-configuration-file-reference.md @@ -19,9 +19,10 @@ Currently, Tracetest supports the following data stores. Click on the respective - [Grafana Tempo](./connecting-to-data-stores/tempo) - [Lightstep](./connecting-to-data-stores/lightstep) - [New Relic](./connecting-to-data-stores/new-relic) -- [AWS X-Ray](./connecting-to-data-stores/awsxray.md) +- [AWS X-Ray](./connecting-to-data-stores/awsxray.md)3 - [Datadog](./connecting-to-data-stores/datadog) - [Honeycomb](./connecting-to-data-stores/honeycomb.md) +- [Azure App Insights](./connecting-to-data-stores/azure-app-insights.md) Continue reading below to learn how to configure the OpenTelemetry Collector to send trace data from your application to any of the trace data stores above. @@ -218,3 +219,31 @@ service: processors: [batch] # make sure to have the probabilistic_sampler before your batch processor exporters: [otlp/2] # your exporter pointing to your Tempo instance ``` + +## Configure OpenTelemetry Collector to Send Traces to Azure App Insights + +You'll configure the OpenTelemetry Collector to receive traces from your system and then send them to Azure App Insights. And, you don't have to change your existing pipelines to do so. + +In your OpenTelemetry Collector config file, make sure to set the `exporter` to `azuremonitor`, with the `endpoint` instrumentation key of your Azure App Insights instance. + +```yaml +# collector.config.yaml + +# If you already have receivers declared, you can just ignore +# this one and still use yours instead. +receivers: + otlp: + protocols: + grpc: + http: + +exporters: + azuremonitor: + instrumentation_key: + +service: + pipelines: + traces/appinsights: + receivers: [otlp] # your receiver + exporters: [azuremonitor] # your exporter pointing to your Azure App Insights instance +``` diff --git a/docs/docs/configuration/overview.md b/docs/docs/configuration/overview.md index 417142ad9c..6eaaf77d96 100644 --- a/docs/docs/configuration/overview.md +++ b/docs/docs/configuration/overview.md @@ -21,6 +21,7 @@ Currently, Tracetest supports the following data stores. Click on the respective - [AWS X-Ray](./connecting-to-data-stores/awsxray) - [Datadog](./connecting-to-data-stores/datadog) - [Honeycomb](./connecting-to-data-stores/honeycomb) +- [Azure App Insights](./connecting-to-data-stores/azure-app-insights.md) ## Using Tracetest without a Trace Data Store diff --git a/docs/sidebars.js b/docs/sidebars.js index 56397d8b10..e210559069 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -115,6 +115,11 @@ const sidebars = { id: "configuration/connecting-to-data-stores/honeycomb", label: "Honeycomb", }, + { + type: "doc", + id: "configuration/connecting-to-data-stores/azure-app-insights", + label: "Azure App Insights", + }, ], }, { @@ -381,7 +386,7 @@ const sidebars = { id: "cli/running-transactions", label: "Running Transactions", }, - ] + ], }, { type: "doc", diff --git a/web/src/constants/CollectorConfig.constants.ts b/web/src/constants/CollectorConfig.constants.ts index 0bb1ef9c27..f1f26bcce8 100644 --- a/web/src/constants/CollectorConfig.constants.ts +++ b/web/src/constants/CollectorConfig.constants.ts @@ -178,25 +178,25 @@ otlp: http: processors: -batch: + batch: exporters: -azuremonitor: - instrumentation_key: -otlp/tracetest: - endpoint: tracetest:4317 - tls: - insecure: true + azuremonitor: + instrumentation_key: + otlp/tracetest: + endpoint: tracetest:4317 + tls: + insecure: true service: -pipelines: - traces/tracetest: - receivers: [otlp] - processors: [batch] - exporters: [otlp/tracetest] - traces/appinsights: - receivers: [otlp] - exporters: [azuremonitor] + pipelines: + traces/tracetest: + receivers: [otlp] + processors: [batch] + exporters: [otlp/tracetest] + traces/appinsights: + receivers: [otlp] + exporters: [azuremonitor] `; export const CollectorConfigMap = {