diff --git a/docs/server/administration/monitoring/open-telemetry.mdx b/docs/server/administration/monitoring/open-telemetry.mdx index 600f7cef9c..9e78414d0b 100644 --- a/docs/server/administration/monitoring/open-telemetry.mdx +++ b/docs/server/administration/monitoring/open-telemetry.mdx @@ -1,6 +1,6 @@ --- title: "OpenTelemetry Support" -sidebar_label: OpenTelemetry +sidebar_label: "OpenTelemetry" description: "Export RavenDB server metrics and traces using OpenTelemetry for integration with observability platforms like Jaeger and Prometheus." sidebar_position: 2 --- @@ -12,7 +12,6 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# OpenTelemetry Support * [OpenTelemetry](https://opentelemetry.io) is an open-source observability framework that provides a set of APIs, SDKs, and tools @@ -27,10 +26,12 @@ import LanguageContent from "@site/src/components/LanguageContent"; Learn more [below](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus). * OpenTelemetry support is provided for RavenDB instances both on-premises and in the cloud. -* In this page: + +* In this article: * [Enabling OpenTelemetry in RavenDB](../../../server/administration/monitoring/open-telemetry.mdx#enabling-opentelemetry-in-ravendb) * [RavenDB OpenTelemetry meters](../../../server/administration/monitoring/open-telemetry.mdx#ravendb-opentelemetry-meters) * [Server identification in metrics](../../../server/administration/monitoring/open-telemetry.mdx#server-identification-in-metrics) + * [Service name and namespace](../../../server/administration/monitoring/open-telemetry.mdx#service-name-and-namespace) * [The metric instruments](../../../server/administration/monitoring/open-telemetry.mdx#the-metric-instruments) * [Metrics export options](../../../server/administration/monitoring/open-telemetry.mdx#metrics-export-options) * [Console](../../../server/administration/monitoring/open-telemetry.mdx#console) @@ -40,6 +41,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; * [Retrieve data from Prometheus](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus) + ## Enabling OpenTelemetry in RavenDB * To enable the OpenTelemetry metrics in RavenDB, @@ -50,8 +52,6 @@ import LanguageContent from "@site/src/components/LanguageContent"; * Please remember that it is necessary to restart the RavenDB process for changes to take effect. - - ## RavenDB OpenTelemetry meters Each meter listed below groups similar or related [metric instruments](../../../server/administration/monitoring/open-telemetry.mdx#the-metric-instruments). @@ -89,7 +89,8 @@ RavenDB exposes the following meters: * **ravendb.server.totaldatabases** Description: Exposes aggregated information about databases on the server Enabled by default: _true_ - Configuration key: [Monitoring.OpenTelemetry.Meters.Server.TotalDatabases.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetrymetersservertotaldatabasesenabled) + Configuration key: [Monitoring.OpenTelemetry.Meters.Server.TotalDatabases.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetrymetersservertotaldatabasesenabled) + RavenDB also supports exposing meters developed by Microsoft for AspNetCore and .NET Runtime: * **Official AspNetCore instrumentation** @@ -101,8 +102,6 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and Enabled by default: _false_ Configuration key: [Monitoring.OpenTelemetry.Meters.Runtime.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetrymetersruntimeenabled) - - ## Server identification in metrics * OpenTelemetry monitoring requires a service instance ID for initialization. @@ -120,7 +119,26 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and 4. **Initialization Failure** If none of the above options are available, OpenTelemetry will Not be initialized. +## Service name and namespace + +* RavenDB's OpenTelemetry metrics are emitted with an OpenTelemetry resource that includes the `service.name` and `service.namespace` attributes. + Observability tools, such as the .NET Aspire dashboard, can use these values to identify and group RavenDB metrics. + +* By default, RavenDB uses `server` as the service name and `ravendb` as the service namespace. + +* These values are configured through RavenDB configuration, not through OpenTelemetry environment variables. + To override these values, use the following configuration keys: + * [Monitoring.OpenTelemetry.ServiceName](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + * [Monitoring.OpenTelemetry.ServiceNamespace](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) + + + +When RavenDB OpenTelemetry monitoring is enabled by setting +[Monitoring.OpenTelemetry.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) to `true`, +the effective service name and service namespace values must not be `null`, empty, or whitespace. +Otherwise, the server will fail to start. + ## The metric instruments @@ -238,8 +256,6 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and | ravendb.server.totaldatabases.number.faulty_indexes | Number of faulty indexes in all loaded databases | UpDownCounter | | ravendb.server.totaldatabases.writes_per_second | Number of writes \(documents, attachments, counters, timeseries\) in all loaded databases | Gauge | - - ## Metrics export options RavenDB offers two options for exporting metrics: @@ -320,8 +336,6 @@ The endpoint format should match the transport protocol you are using: - - ## Configuring the OpenTelemetry Collector * The OpenTelemetry Collector is a vendor-agnostic proxy that can receive, process, and export telemetry data (traces, metrics, logs) @@ -393,6 +407,4 @@ The endpoint format should match the transport protocol you are using: * The configuration above sets up the OpenTelemetry Collector to scrape Prometheus-formatted metrics from a RavenDB server. The collector will access `http://localhost:8080/admin/monitoring/v1/prometheus` to retrieve the metrics. - - - + \ No newline at end of file diff --git a/docs/server/configuration/monitoring-configuration.mdx b/docs/server/configuration/monitoring-configuration.mdx index 781abd2ef5..e6d336ecfa 100644 --- a/docs/server/configuration/monitoring-configuration.mdx +++ b/docs/server/configuration/monitoring-configuration.mdx @@ -1,6 +1,6 @@ --- title: "Configuration: Monitoring Options" -sidebar_label: Monitoring Configuration +sidebar_label: "Monitoring Configuration" description: "Configure RavenDB monitoring endpoints for SNMP and OpenTelemetry, including ports, community strings, and metric export settings." sidebar_position: 14 --- @@ -12,10 +12,9 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# Configuration: Monitoring Options -* In this page: +* In this article: * OpenTelemetry monitoring: [Monitoring.OpenTelemetry.ConsoleExporter](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryconsoleexporter) [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) @@ -36,6 +35,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Protocol](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocolprotocol) [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Timeout](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocoltimeout) [Monitoring.OpenTelemetry.ServiceInstanceId](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryserviceinstanceid) + [Monitoring.OpenTelemetry.ServiceName](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + [Monitoring.OpenTelemetry.ServiceNamespace](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) * SNMP monitoring [Monitoring.Snmp.AuthenticationPassword](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpassword) [Monitoring.Snmp.AuthenticationPassword.Secondary](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpasswordsecondary) @@ -58,6 +59,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.Disk.ReadStatsDebounceTimeInMs](../../server/configuration/monitoring-configuration.mdx#monitoringdiskreadstatsdebouncetimeinms) + ## Monitoring.OpenTelemetry.ConsoleExporter Indicates if metrics should be exported to the console output. @@ -251,6 +253,40 @@ OpenTelemetryProtocol timeout value. +## Monitoring.OpenTelemetry.ServiceName + +* Sets the OpenTelemetry **service name**. + This value is reported as the `service.name` resource attribute and is used to identify the RavenDB service in observability tools, such as the .NET Aspire dashboard. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `server` +- **Scope**: Server-wide only + + + +## Monitoring.OpenTelemetry.ServiceNamespace + +* Sets the OpenTelemetry **service namespace**. + This value is reported as the `service.namespace` resource attribute and is used to group related services together in observability tools. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `ravendb` +- **Scope**: Server-wide only + + + ## Monitoring.Snmp.AuthenticationPassword Authentication password used for SNMP v3 authentication. diff --git a/versioned_docs/version-6.2/server/administration/monitoring/open-telemetry.mdx b/versioned_docs/version-6.2/server/administration/monitoring/open-telemetry.mdx index 7d3e7b7df8..6388725524 100644 --- a/versioned_docs/version-6.2/server/administration/monitoring/open-telemetry.mdx +++ b/versioned_docs/version-6.2/server/administration/monitoring/open-telemetry.mdx @@ -11,7 +11,6 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# OpenTelemetry Support * [OpenTelemetry](https://opentelemetry.io) is an open-source observability framework that provides a set of APIs, SDKs, and tools @@ -26,10 +25,12 @@ import LanguageContent from "@site/src/components/LanguageContent"; Learn more [below](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus). * OpenTelemetry support is provided for RavenDB instances both on-premises and in the cloud. -* In this page: + +* In this article: * [Enabling OpenTelemetry in RavenDB](../../../server/administration/monitoring/open-telemetry.mdx#enabling-opentelemetry-in-ravendb) * [RavenDB OpenTelemetry meters](../../../server/administration/monitoring/open-telemetry.mdx#ravendb-opentelemetry-meters) * [Server identification in metrics](../../../server/administration/monitoring/open-telemetry.mdx#server-identification-in-metrics) + * [Service name and namespace](../../../server/administration/monitoring/open-telemetry.mdx#service-name-and-namespace) * [The metric instruments](../../../server/administration/monitoring/open-telemetry.mdx#the-metric-instruments) * [Metrics export options](../../../server/administration/monitoring/open-telemetry.mdx#metrics-export-options) * [Console](../../../server/administration/monitoring/open-telemetry.mdx#console) @@ -39,6 +40,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; * [Retrieve data from Prometheus](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus) + ## Enabling OpenTelemetry in RavenDB * To enable the OpenTelemetry metrics in RavenDB, @@ -119,7 +121,26 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and 4. **Initialization Failure** If none of the above options are available, OpenTelemetry will Not be initialized. +## Service name and namespace + +* RavenDB's OpenTelemetry metrics are emitted with an OpenTelemetry resource that includes the `service.name` and `service.namespace` attributes. + Observability tools, such as the .NET Aspire dashboard, can use these values to identify and group RavenDB metrics. + +* By default, RavenDB uses `server` as the service name and `ravendb` as the service namespace. + +* These values are configured through RavenDB configuration, not through OpenTelemetry environment variables. + To override these values, use the following configuration keys: + * [Monitoring.OpenTelemetry.ServiceName](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + * [Monitoring.OpenTelemetry.ServiceNamespace](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) + + +When RavenDB OpenTelemetry monitoring is enabled by setting +[Monitoring.OpenTelemetry.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) to `true`, +the effective service name and service namespace values must not be `null`, empty, or whitespace. +Otherwise, the server will fail to start. + + ## The metric instruments diff --git a/versioned_docs/version-6.2/server/configuration/monitoring-configuration.mdx b/versioned_docs/version-6.2/server/configuration/monitoring-configuration.mdx index 186b131335..cbbc989ece 100644 --- a/versioned_docs/version-6.2/server/configuration/monitoring-configuration.mdx +++ b/versioned_docs/version-6.2/server/configuration/monitoring-configuration.mdx @@ -1,6 +1,6 @@ --- title: "Configuration: Monitoring Options" -sidebar_label: Monitoring Configuration +sidebar_label: "Monitoring Configuration" sidebar_position: 14 --- @@ -11,10 +11,9 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# Configuration: Monitoring Options -* In this page: +* In this article: * OpenTelemetry monitoring: [Monitoring.OpenTelemetry.ConsoleExporter](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryconsoleexporter) [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) @@ -35,6 +34,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Protocol](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocolprotocol) [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Timeout](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocoltimeout) [Monitoring.OpenTelemetry.ServiceInstanceId](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryserviceinstanceid) + [Monitoring.OpenTelemetry.ServiceName](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + [Monitoring.OpenTelemetry.ServiceNamespace](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) * SNMP monitoring [Monitoring.Snmp.AuthenticationPassword](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpassword) [Monitoring.Snmp.AuthenticationPassword.Secondary](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpasswordsecondary) @@ -57,6 +58,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.Disk.ReadStatsDebounceTimeInMs](../../server/configuration/monitoring-configuration.mdx#monitoringdiskreadstatsdebouncetimeinms) + ## Monitoring.OpenTelemetry.ConsoleExporter Indicates if metrics should be exported to the console output. @@ -250,6 +252,40 @@ OpenTelemetryProtocol timeout value. +## Monitoring.OpenTelemetry.ServiceName + +* Sets the OpenTelemetry **service name**. + This value is reported as the `service.name` resource attribute and is used to identify the RavenDB service in observability tools, such as the .NET Aspire dashboard. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `server` +- **Scope**: Server-wide only + + + +## Monitoring.OpenTelemetry.ServiceNamespace + +* Sets the OpenTelemetry **service namespace**. + This value is reported as the `service.namespace` resource attribute and is used to group related services together in observability tools. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `ravendb` +- **Scope**: Server-wide only + + + ## Monitoring.Snmp.AuthenticationPassword Authentication password used for SNMP v3 authentication. diff --git a/versioned_docs/version-7.0/server/administration/monitoring/open-telemetry.mdx b/versioned_docs/version-7.0/server/administration/monitoring/open-telemetry.mdx index 7d3e7b7df8..6388725524 100644 --- a/versioned_docs/version-7.0/server/administration/monitoring/open-telemetry.mdx +++ b/versioned_docs/version-7.0/server/administration/monitoring/open-telemetry.mdx @@ -11,7 +11,6 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# OpenTelemetry Support * [OpenTelemetry](https://opentelemetry.io) is an open-source observability framework that provides a set of APIs, SDKs, and tools @@ -26,10 +25,12 @@ import LanguageContent from "@site/src/components/LanguageContent"; Learn more [below](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus). * OpenTelemetry support is provided for RavenDB instances both on-premises and in the cloud. -* In this page: + +* In this article: * [Enabling OpenTelemetry in RavenDB](../../../server/administration/monitoring/open-telemetry.mdx#enabling-opentelemetry-in-ravendb) * [RavenDB OpenTelemetry meters](../../../server/administration/monitoring/open-telemetry.mdx#ravendb-opentelemetry-meters) * [Server identification in metrics](../../../server/administration/monitoring/open-telemetry.mdx#server-identification-in-metrics) + * [Service name and namespace](../../../server/administration/monitoring/open-telemetry.mdx#service-name-and-namespace) * [The metric instruments](../../../server/administration/monitoring/open-telemetry.mdx#the-metric-instruments) * [Metrics export options](../../../server/administration/monitoring/open-telemetry.mdx#metrics-export-options) * [Console](../../../server/administration/monitoring/open-telemetry.mdx#console) @@ -39,6 +40,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; * [Retrieve data from Prometheus](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus) + ## Enabling OpenTelemetry in RavenDB * To enable the OpenTelemetry metrics in RavenDB, @@ -119,7 +121,26 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and 4. **Initialization Failure** If none of the above options are available, OpenTelemetry will Not be initialized. +## Service name and namespace + +* RavenDB's OpenTelemetry metrics are emitted with an OpenTelemetry resource that includes the `service.name` and `service.namespace` attributes. + Observability tools, such as the .NET Aspire dashboard, can use these values to identify and group RavenDB metrics. + +* By default, RavenDB uses `server` as the service name and `ravendb` as the service namespace. + +* These values are configured through RavenDB configuration, not through OpenTelemetry environment variables. + To override these values, use the following configuration keys: + * [Monitoring.OpenTelemetry.ServiceName](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + * [Monitoring.OpenTelemetry.ServiceNamespace](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) + + +When RavenDB OpenTelemetry monitoring is enabled by setting +[Monitoring.OpenTelemetry.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) to `true`, +the effective service name and service namespace values must not be `null`, empty, or whitespace. +Otherwise, the server will fail to start. + + ## The metric instruments diff --git a/versioned_docs/version-7.0/server/configuration/monitoring-configuration.mdx b/versioned_docs/version-7.0/server/configuration/monitoring-configuration.mdx index 186b131335..cbbc989ece 100644 --- a/versioned_docs/version-7.0/server/configuration/monitoring-configuration.mdx +++ b/versioned_docs/version-7.0/server/configuration/monitoring-configuration.mdx @@ -1,6 +1,6 @@ --- title: "Configuration: Monitoring Options" -sidebar_label: Monitoring Configuration +sidebar_label: "Monitoring Configuration" sidebar_position: 14 --- @@ -11,10 +11,9 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# Configuration: Monitoring Options -* In this page: +* In this article: * OpenTelemetry monitoring: [Monitoring.OpenTelemetry.ConsoleExporter](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryconsoleexporter) [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) @@ -35,6 +34,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Protocol](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocolprotocol) [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Timeout](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocoltimeout) [Monitoring.OpenTelemetry.ServiceInstanceId](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryserviceinstanceid) + [Monitoring.OpenTelemetry.ServiceName](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + [Monitoring.OpenTelemetry.ServiceNamespace](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) * SNMP monitoring [Monitoring.Snmp.AuthenticationPassword](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpassword) [Monitoring.Snmp.AuthenticationPassword.Secondary](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpasswordsecondary) @@ -57,6 +58,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.Disk.ReadStatsDebounceTimeInMs](../../server/configuration/monitoring-configuration.mdx#monitoringdiskreadstatsdebouncetimeinms) + ## Monitoring.OpenTelemetry.ConsoleExporter Indicates if metrics should be exported to the console output. @@ -250,6 +252,40 @@ OpenTelemetryProtocol timeout value. +## Monitoring.OpenTelemetry.ServiceName + +* Sets the OpenTelemetry **service name**. + This value is reported as the `service.name` resource attribute and is used to identify the RavenDB service in observability tools, such as the .NET Aspire dashboard. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `server` +- **Scope**: Server-wide only + + + +## Monitoring.OpenTelemetry.ServiceNamespace + +* Sets the OpenTelemetry **service namespace**. + This value is reported as the `service.namespace` resource attribute and is used to group related services together in observability tools. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `ravendb` +- **Scope**: Server-wide only + + + ## Monitoring.Snmp.AuthenticationPassword Authentication password used for SNMP v3 authentication. diff --git a/versioned_docs/version-7.1/server/administration/monitoring/open-telemetry.mdx b/versioned_docs/version-7.1/server/administration/monitoring/open-telemetry.mdx index 7d3e7b7df8..6388725524 100644 --- a/versioned_docs/version-7.1/server/administration/monitoring/open-telemetry.mdx +++ b/versioned_docs/version-7.1/server/administration/monitoring/open-telemetry.mdx @@ -11,7 +11,6 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# OpenTelemetry Support * [OpenTelemetry](https://opentelemetry.io) is an open-source observability framework that provides a set of APIs, SDKs, and tools @@ -26,10 +25,12 @@ import LanguageContent from "@site/src/components/LanguageContent"; Learn more [below](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus). * OpenTelemetry support is provided for RavenDB instances both on-premises and in the cloud. -* In this page: + +* In this article: * [Enabling OpenTelemetry in RavenDB](../../../server/administration/monitoring/open-telemetry.mdx#enabling-opentelemetry-in-ravendb) * [RavenDB OpenTelemetry meters](../../../server/administration/monitoring/open-telemetry.mdx#ravendb-opentelemetry-meters) * [Server identification in metrics](../../../server/administration/monitoring/open-telemetry.mdx#server-identification-in-metrics) + * [Service name and namespace](../../../server/administration/monitoring/open-telemetry.mdx#service-name-and-namespace) * [The metric instruments](../../../server/administration/monitoring/open-telemetry.mdx#the-metric-instruments) * [Metrics export options](../../../server/administration/monitoring/open-telemetry.mdx#metrics-export-options) * [Console](../../../server/administration/monitoring/open-telemetry.mdx#console) @@ -39,6 +40,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; * [Retrieve data from Prometheus](../../../server/administration/monitoring/open-telemetry.mdx#retrieve-data-from-prometheus) + ## Enabling OpenTelemetry in RavenDB * To enable the OpenTelemetry metrics in RavenDB, @@ -119,7 +121,26 @@ RavenDB also supports exposing meters developed by Microsoft for AspNetCore and 4. **Initialization Failure** If none of the above options are available, OpenTelemetry will Not be initialized. +## Service name and namespace + +* RavenDB's OpenTelemetry metrics are emitted with an OpenTelemetry resource that includes the `service.name` and `service.namespace` attributes. + Observability tools, such as the .NET Aspire dashboard, can use these values to identify and group RavenDB metrics. + +* By default, RavenDB uses `server` as the service name and `ravendb` as the service namespace. + +* These values are configured through RavenDB configuration, not through OpenTelemetry environment variables. + To override these values, use the following configuration keys: + * [Monitoring.OpenTelemetry.ServiceName](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + * [Monitoring.OpenTelemetry.ServiceNamespace](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) + + +When RavenDB OpenTelemetry monitoring is enabled by setting +[Monitoring.OpenTelemetry.Enabled](../../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) to `true`, +the effective service name and service namespace values must not be `null`, empty, or whitespace. +Otherwise, the server will fail to start. + + ## The metric instruments diff --git a/versioned_docs/version-7.1/server/configuration/monitoring-configuration.mdx b/versioned_docs/version-7.1/server/configuration/monitoring-configuration.mdx index 186b131335..cbbc989ece 100644 --- a/versioned_docs/version-7.1/server/configuration/monitoring-configuration.mdx +++ b/versioned_docs/version-7.1/server/configuration/monitoring-configuration.mdx @@ -1,6 +1,6 @@ --- title: "Configuration: Monitoring Options" -sidebar_label: Monitoring Configuration +sidebar_label: "Monitoring Configuration" sidebar_position: 14 --- @@ -11,10 +11,9 @@ import CodeBlock from '@theme/CodeBlock'; import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; import LanguageContent from "@site/src/components/LanguageContent"; -# Configuration: Monitoring Options -* In this page: +* In this article: * OpenTelemetry monitoring: [Monitoring.OpenTelemetry.ConsoleExporter](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryconsoleexporter) [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) @@ -35,6 +34,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Protocol](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocolprotocol) [Monitoring.OpenTelemetry.OpenTelemetryProtocol.Timeout](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryopentelemetryprotocoltimeout) [Monitoring.OpenTelemetry.ServiceInstanceId](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryserviceinstanceid) + [Monitoring.OpenTelemetry.ServiceName](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicename) + [Monitoring.OpenTelemetry.ServiceNamespace](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryservicenamespace) * SNMP monitoring [Monitoring.Snmp.AuthenticationPassword](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpassword) [Monitoring.Snmp.AuthenticationPassword.Secondary](../../server/configuration/monitoring-configuration.mdx#monitoringsnmpauthenticationpasswordsecondary) @@ -57,6 +58,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; [Monitoring.Disk.ReadStatsDebounceTimeInMs](../../server/configuration/monitoring-configuration.mdx#monitoringdiskreadstatsdebouncetimeinms) + ## Monitoring.OpenTelemetry.ConsoleExporter Indicates if metrics should be exported to the console output. @@ -250,6 +252,40 @@ OpenTelemetryProtocol timeout value. +## Monitoring.OpenTelemetry.ServiceName + +* Sets the OpenTelemetry **service name**. + This value is reported as the `service.name` resource attribute and is used to identify the RavenDB service in observability tools, such as the .NET Aspire dashboard. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `server` +- **Scope**: Server-wide only + + + +## Monitoring.OpenTelemetry.ServiceNamespace + +* Sets the OpenTelemetry **service namespace**. + This value is reported as the `service.namespace` resource attribute and is used to group related services together in observability tools. + +* If [Monitoring.OpenTelemetry.Enabled](../../server/configuration/monitoring-configuration.mdx#monitoringopentelemetryenabled) is set to `true`, + the effective value must not be `null`, empty, or whitespace. + Otherwise, the server will fail to start. + +--- + +- **Type**: `string` +- **Default**: `ravendb` +- **Scope**: Server-wide only + + + ## Monitoring.Snmp.AuthenticationPassword Authentication password used for SNMP v3 authentication.