/*
 * SPDX-FileCopyrightText: 2025 Copyright contributors to the cppTango project
 *
 * SPDX-License-Identifier: LGPL-3.0-or-later
 */
#ifndef TANGO_COMMON_TELEMETRY_CONSTS_H
#define TANGO_COMMON_TELEMETRY_CONSTS_H

#include <tango/common/defines.h>

#ifdef TANGO_USE_TELEMETRY

namespace Tango::telemetry
{

//! Span attribute name used for identifying span topics
constexpr const char *kTelemetryTopicSpanAttribute = "tango.telemetry.topic";

constexpr const char *kTelemetryLogAppenderName = "telemetry_logs_appender";

//! Environment variable to enable the telemetry system; if not set or set to disabled, the telemetry
//! system is bypassed.
constexpr const char *kEnvVarTelemetryEnable = "TANGO_TELEMETRY_ENABLE";

//! Telemetry types environment variable containing a comma-separated list of types to be enabled. If 'none'
//! is present then all types are disabled. If the variable is not set all types are enabled.
constexpr const char *kEnvVarTelemetryTypes = "TANGO_TELEMETRY_TYPES";

//! Telemetry types environment variable containing a comma-separated list of types to be enabled. If 'none'
//! is present then all types are disabled. If the variable is not set all types are enabled.
constexpr const char *kEnvVarTelemetryTopics = "TANGO_TELEMETRY_TOPICS";

//! Traces endpoint env. variable. This is the name of the optional env. variable containing a comma-separated
//! list of urls (or cout/cerr) to which traces are sent.
constexpr const char *kEnvVarTelemetryTracingEndPoints = "TANGO_TELEMETRY_TRACING_ENDPOINTS";

//! Logging endpoint env. variable. This is the name of the optional env. variable containing a comma-separated
//! list of urls (or cout/cerr) to which telemetry logs are sent.
constexpr const char *kEnvVarTelemetryLoggingEndPoints = "TANGO_TELEMETRY_LOGGING_ENDPOINTS";

//! Traces exporters environment variable containing a comma-separated list of exporter types
constexpr const char *kEnvVarTelemetryTracingExporters = "TANGO_TELEMETRY_TRACING_EXPORTERS";

//! Telemetry log exporters environment variable containing a comma-separated list of exporter types
constexpr const char *kEnvVarTelemetryLoggingExporters = "TANGO_TELEMETRY_LOGGING_EXPORTERS";

} // namespace Tango::telemetry

#endif // TANGO_USE_TELEMETRY

#endif // TANGO_COMMON_TELEMETRY_CONSTS_H
