summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/sdk/Common/Configuration/KnownValues.php
blob: 8975b20f96c70e0e4866604bd1942fd2bd720018 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<?php

declare(strict_types=1);

namespace OpenTelemetry\SDK\Common\Configuration;

use Psr\Log\LogLevel;

/**
 * "Known values" for OpenTelemetry configurataion variables.
 * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md
 * Notice: Values specific to the PHP SDK have been added
 */
interface KnownValues
{
    public const VALUE_TRUE = 'true';
    public const VALUE_FALSE = 'false';
    public const VALUE_ON = 'on';
    public const VALUE_OFF = 'off';
    public const VALUE_1 = '1';
    public const VALUE_0 = '0';
    public const VALUE_ALL = 'all';
    public const VALUE_NONE = 'none';
    public const VALUE_TRACECONTEXT = 'tracecontext';
    public const VALUE_BAGGAGE = 'baggage';
    public const VALUE_B3 = 'b3';
    public const VALUE_B3_MULTI = 'b3multi';
    public const VALUE_XRAY = 'xray';
    public const VALUE_OTTRACE = 'ottrace';
    public const VALUE_ALWAYS_ON = 'always_on';
    public const VALUE_ALWAYS_OFF = 'always_off';
    public const VALUE_TRACE_ID_RATIO = 'traceidratio';
    public const VALUE_PARENT_BASED_ALWAYS_ON = 'parentbased_always_on';
    public const VALUE_PARENT_BASED_ALWAYS_OFF = 'parentbased_always_off';
    public const VALUE_PARENT_BASED_TRACE_ID_RATIO = 'parentbased_traceidratio';
    public const VALUE_GZIP = 'gzip';
    public const VALUE_GRPC = 'grpc';
    public const VALUE_HTTP_PROTOBUF = 'http/protobuf';
    public const VALUE_HTTP_JSON = 'http/json';
    public const VALUE_HTTP_NDJSON = 'http/ndjson';
    public const VALUE_OTLP = 'otlp';
    public const VALUE_ZIPKIN = 'zipkin';
    public const VALUE_PROMETHEUS = 'prometheus';
    public const VALUE_WITH_SAMPLED_TRACE = 'with_sampled_trace';
    public const VALUE_BATCH = 'batch';
    public const VALUE_SIMPLE = 'simple';
    public const VALUE_NOOP = 'noop';
    public const VALUE_LOG_EMERGENCY = LogLevel::EMERGENCY;
    public const VALUE_LOG_ALERT = LogLevel::ALERT;
    public const VALUE_LOG_CRITICAL = LogLevel::CRITICAL;
    public const VALUE_LOG_ERROR = LogLevel::ERROR;
    public const VALUE_LOG_WARNING = LogLevel::WARNING;
    public const VALUE_LOG_NOTICE = LogLevel::NOTICE;
    public const VALUE_LOG_INFO = LogLevel::INFO;
    public const VALUE_LOG_DEBUG = LogLevel::DEBUG;
    public const VALUE_TEMPORALITY_CUMULATIVE = 'cumulative';
    public const VALUE_TEMPORALITY_DELTA = 'delta';
    public const VALUE_TEMPORALITY_LOW_MEMORY = 'lowmemory';
    public const VALUE_HISTOGRAM_AGGREGATION_EXPLICIT = 'explicit_bucket_histogram';
    public const VALUE_HISTOGRAM_AGGREGATION_BASE2_EXPONENTIAL = 'base2_exponential_bucket_histogram';

    public const VALUES_BOOLEAN = [
        self::VALUE_TRUE,
        self::VALUE_FALSE,
    ];

    public const VALUES_COMPRESSION= [
        self::VALUE_GZIP,
        self::VALUE_NONE,
    ];

    public const VALUES_OTLP_PROTOCOL = [
        self::VALUE_GRPC,
        self::VALUE_HTTP_PROTOBUF,
        self::VALUE_HTTP_JSON,
    ];

    public const VALUES_TEMPORALITY_PREFERENCE = [
        self::VALUE_TEMPORALITY_CUMULATIVE,
        self::VALUE_TEMPORALITY_DELTA,
        self::VALUE_TEMPORALITY_LOW_MEMORY,
    ];

    public const VALUES_HISTOGRAM_AGGREGATION = [
        self::VALUE_HISTOGRAM_AGGREGATION_EXPLICIT,
        self::VALUE_HISTOGRAM_AGGREGATION_BASE2_EXPONENTIAL,
    ];

    /**
     * General SDK Configuration
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration
     */
    public const OTEL_LOG_LEVEL = [
        self::VALUE_LOG_EMERGENCY,
        self::VALUE_LOG_ALERT,
        self::VALUE_LOG_CRITICAL,
        self::VALUE_LOG_ERROR,
        self::VALUE_LOG_WARNING,
        self::VALUE_LOG_NOTICE,
        self::VALUE_LOG_INFO,
        self::VALUE_LOG_DEBUG,
    ];
    public const OTEL_PROPAGATORS = [
        self::VALUE_TRACECONTEXT, // W3C Trace Context
        self::VALUE_BAGGAGE, // W3C Baggage
        self::VALUE_B3, // B3 Single
        self::VALUE_B3_MULTI, // B3 Multi
        self::VALUE_XRAY, // AWS X-Ray (third party)
        self::VALUE_OTTRACE, // OT Trace (third party)
        self::VALUE_NONE, // No automatically configured propagator.
    ];
    public const OTEL_TRACES_SAMPLER = [
        self::VALUE_ALWAYS_ON,
        self::VALUE_ALWAYS_OFF,
        self::VALUE_TRACE_ID_RATIO,
        self::VALUE_PARENT_BASED_ALWAYS_ON,
        self::VALUE_PARENT_BASED_ALWAYS_OFF,
        self::VALUE_PARENT_BASED_TRACE_ID_RATIO,
        self::VALUE_XRAY,
    ];
    /**
     * OTLP Exporter
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options
     */
    // Insecure
    public const OTEL_EXPORTER_OTLP_INSECURE  = self::VALUES_BOOLEAN;
    public const OTEL_EXPORTER_OTLP_TRACES_INSECURE = self::VALUES_BOOLEAN;
    public const OTEL_EXPORTER_OTLP_METRICS_INSECURE  = self::VALUES_BOOLEAN;
    // Compression
    public const OTEL_EXPORTER_OTLP_COMPRESSION = self::VALUES_COMPRESSION;
    public const OTEL_EXPORTER_OTLP_TRACES_COMPRESSION = self::VALUES_COMPRESSION;
    public const OTEL_EXPORTER_OTLP_METRICS_COMPRESSION = self::VALUES_COMPRESSION;
    // Protocol
    public const OTEL_EXPORTER_OTLP_PROTOCOL = self::VALUES_OTLP_PROTOCOL;
    public const OTEL_EXPORTER_OTLP_TRACES_PROTOCOL = self::VALUES_OTLP_PROTOCOL;
    public const OTEL_EXPORTER_OTLP_METRICS_PROTOCOL = self::VALUES_OTLP_PROTOCOL;
    /**
     * Exporter Selection
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#exporter-selection
     */
    public const OTEL_TRACES_EXPORTER = [
        self::VALUE_OTLP,
        self::VALUE_ZIPKIN,
        self::VALUE_NONE,
    ];
    public const OTEL_METRICS_EXPORTER = [
        self::VALUE_OTLP,
        self::VALUE_PROMETHEUS,
        self::VALUE_NONE,
    ];
    public const OTEL_LOGS_EXPORTER = [
        self::VALUE_OTLP,
        self::VALUE_NONE,
    ];
    /**
     * Metrics SDK Configuration
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration
     */
    public const OTEL_METRICS_EXEMPLAR_FILTER = [
        self::VALUE_WITH_SAMPLED_TRACE,
        self::VALUE_ALL,
        self::VALUE_NONE,
    ];
    /**
     * Language Specific Environment Variables
     * @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#language-specific-environment-variables
     */
    public const OTEL_PHP_TRACES_PROCESSOR = [
        self::VALUE_BATCH,
        self::VALUE_SIMPLE,
        self::VALUE_NOOP,
        self::VALUE_NONE,
    ];
    public const OTEL_PHP_AUTOLOAD_ENABLED = self::VALUES_BOOLEAN;
    public const VALUE_ERROR_LOG = 'error_log';
    public const VALUE_STDERR = 'stderr';
    public const VALUE_STDOUT = 'stdout';
    public const VALUE_PSR3 = 'psr3';
    public const VALUE_EMPTY = '';
    public const VALUE_DETECTORS_ENVIRONMENT = 'env';
    public const VALUE_DETECTORS_HOST = 'host';
    public const VALUE_DETECTORS_OS = 'os';
    public const VALUE_DETECTORS_PROCESS = 'process';
    public const VALUE_DETECTORS_PROCESS_RUNTIME = 'process_runtime';
    public const VALUE_DETECTORS_SDK = 'sdk';
    public const VALUE_DETECTORS_SDK_PROVIDED = 'sdk_provided';
    public const VALUE_DETECTORS_COMPOSER = 'composer';
    public const OTEL_PHP_DETECTORS = [
        self::VALUE_ALL,
        self::VALUE_DETECTORS_ENVIRONMENT,
        self::VALUE_DETECTORS_HOST,
        self::VALUE_DETECTORS_OS,
        self::VALUE_DETECTORS_PROCESS,
        self::VALUE_DETECTORS_PROCESS_RUNTIME,
        self::VALUE_DETECTORS_SDK,
        self::VALUE_DETECTORS_SDK_PROVIDED,
        self::VALUE_DETECTORS_COMPOSER,
        self::VALUE_NONE,
    ];
    public const OTEL_PHP_LOG_DESTINATION = [
        self::VALUE_ERROR_LOG,
        self::VALUE_STDERR,
        self::VALUE_STDOUT,
        self::VALUE_PSR3,
        self::VALUE_EMPTY,
        self::VALUE_NONE,
    ];
}