mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-04-07 07:00:13 +02:00
Unexport EnvBatchSpanProcessor* constants (#2583)
* Move BSP env support to internal * Use pkg name * Update env test * Use internal/env in sdk/trace
This commit is contained in:
parent
219af21e21
commit
b60d53d316
88
sdk/internal/env/env.go
vendored
Normal file
88
sdk/internal/env/env.go
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
// Copyright The OpenTelemetry Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package env // import "go.opentelemetry.io/otel/sdk/internal/env"
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
)
|
||||
|
||||
// Environment variable names
|
||||
const (
|
||||
// BatchSpanProcessorScheduleDelayKey
|
||||
// Delay interval between two consecutive exports.
|
||||
// i.e. 5000
|
||||
BatchSpanProcessorScheduleDelayKey = "OTEL_BSP_SCHEDULE_DELAY"
|
||||
// BatchSpanProcessorExportTimeoutKey
|
||||
// Maximum allowed time to export data.
|
||||
// i.e. 3000
|
||||
BatchSpanProcessorExportTimeoutKey = "OTEL_BSP_EXPORT_TIMEOUT"
|
||||
// BatchSpanProcessorMaxQueueSizeKey
|
||||
// Maximum queue size
|
||||
// i.e. 2048
|
||||
BatchSpanProcessorMaxQueueSizeKey = "OTEL_BSP_MAX_QUEUE_SIZE"
|
||||
// BatchSpanProcessorMaxExportBatchSizeKey
|
||||
// Maximum batch size
|
||||
// Note: Must be less than or equal to EnvBatchSpanProcessorMaxQueueSize
|
||||
// i.e. 512
|
||||
BatchSpanProcessorMaxExportBatchSizeKey = "OTEL_BSP_MAX_EXPORT_BATCH_SIZE"
|
||||
)
|
||||
|
||||
// IntEnvOr returns the int value of the environment variable with name key if
|
||||
// it exists and the value is an int. Otherwise, defaultValue is returned.
|
||||
func IntEnvOr(key string, defaultValue int) int {
|
||||
value, ok := os.LookupEnv(key)
|
||||
if !ok {
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
intValue, err := strconv.Atoi(value)
|
||||
if err != nil {
|
||||
global.Info("Got invalid value, number value expected.", key, value)
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
return intValue
|
||||
}
|
||||
|
||||
// BatchSpanProcessorScheduleDelay returns the environment variable value for
|
||||
// the OTEL_BSP_SCHEDULE_DELAY key if it exists, otherwise defaultValue is
|
||||
// returned.
|
||||
func BatchSpanProcessorScheduleDelay(defaultValue int) int {
|
||||
return IntEnvOr(BatchSpanProcessorScheduleDelayKey, defaultValue)
|
||||
}
|
||||
|
||||
// BatchSpanProcessorExportTimeout returns the environment variable value for
|
||||
// the OTEL_BSP_EXPORT_TIMEOUT key if it exists, otherwise defaultValue is
|
||||
// returned.
|
||||
func BatchSpanProcessorExportTimeout(defaultValue int) int {
|
||||
return IntEnvOr(BatchSpanProcessorExportTimeoutKey, defaultValue)
|
||||
}
|
||||
|
||||
// BatchSpanProcessorMaxQueueSize returns the environment variable value for
|
||||
// the OTEL_BSP_MAX_QUEUE_SIZE key if it exists, otherwise defaultValue is
|
||||
// returned.
|
||||
func BatchSpanProcessorMaxQueueSize(defaultValue int) int {
|
||||
return IntEnvOr(BatchSpanProcessorMaxQueueSizeKey, defaultValue)
|
||||
}
|
||||
|
||||
// BatchSpanProcessorMaxExportBatchSize returns the environment variable value for
|
||||
// the OTEL_BSP_MAX_EXPORT_BATCH_SIZE key if it exists, otherwise defaultValue
|
||||
// is returned.
|
||||
func BatchSpanProcessorMaxExportBatchSize(defaultValue int) int {
|
||||
return IntEnvOr(BatchSpanProcessorMaxExportBatchSizeKey, defaultValue)
|
||||
}
|
@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package trace
|
||||
package env
|
||||
|
||||
import (
|
||||
"os"
|
||||
@ -46,14 +46,14 @@ func TestIntEnvOr(t *testing.T) {
|
||||
}
|
||||
|
||||
envStore := ottest.NewEnvStore()
|
||||
envStore.Record(EnvBatchSpanProcessorMaxQueueSize)
|
||||
envStore.Record(BatchSpanProcessorMaxQueueSizeKey)
|
||||
defer func() {
|
||||
require.NoError(t, envStore.Restore())
|
||||
}()
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
require.NoError(t, os.Setenv(EnvBatchSpanProcessorMaxQueueSize, tc.envValue))
|
||||
actualValue := intEnvOr(EnvBatchSpanProcessorMaxQueueSize, tc.defaultValue)
|
||||
require.NoError(t, os.Setenv(BatchSpanProcessorMaxQueueSizeKey, tc.envValue))
|
||||
actualValue := BatchSpanProcessorMaxQueueSize(tc.defaultValue)
|
||||
assert.Equal(t, tc.expectedValue, actualValue)
|
||||
})
|
||||
}
|
@ -23,6 +23,7 @@ import (
|
||||
|
||||
"go.opentelemetry.io/otel"
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/sdk/internal/env"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
@ -89,8 +90,8 @@ var _ SpanProcessor = (*batchSpanProcessor)(nil)
|
||||
//
|
||||
// If the exporter is nil, the span processor will preform no action.
|
||||
func NewBatchSpanProcessor(exporter SpanExporter, options ...BatchSpanProcessorOption) SpanProcessor {
|
||||
maxQueueSize := intEnvOr(EnvBatchSpanProcessorMaxQueueSize, DefaultMaxQueueSize)
|
||||
maxExportBatchSize := intEnvOr(EnvBatchSpanProcessorMaxExportBatchSize, DefaultMaxExportBatchSize)
|
||||
maxQueueSize := env.BatchSpanProcessorMaxQueueSize(DefaultMaxQueueSize)
|
||||
maxExportBatchSize := env.BatchSpanProcessorMaxExportBatchSize(DefaultMaxExportBatchSize)
|
||||
|
||||
if maxExportBatchSize > maxQueueSize {
|
||||
if DefaultMaxExportBatchSize > maxQueueSize {
|
||||
@ -101,8 +102,8 @@ func NewBatchSpanProcessor(exporter SpanExporter, options ...BatchSpanProcessorO
|
||||
}
|
||||
|
||||
o := BatchSpanProcessorOptions{
|
||||
BatchTimeout: time.Duration(intEnvOr(EnvBatchSpanProcessorScheduleDelay, DefaultScheduleDelay)) * time.Millisecond,
|
||||
ExportTimeout: time.Duration(intEnvOr(EnvBatchSpanProcessorExportTimeout, DefaultExportTimeout)) * time.Millisecond,
|
||||
BatchTimeout: time.Duration(env.BatchSpanProcessorScheduleDelay(DefaultScheduleDelay)) * time.Millisecond,
|
||||
ExportTimeout: time.Duration(env.BatchSpanProcessorExportTimeout(DefaultExportTimeout)) * time.Millisecond,
|
||||
MaxQueueSize: maxQueueSize,
|
||||
MaxExportBatchSize: maxExportBatchSize,
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/sdk/internal/env"
|
||||
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
||||
"go.opentelemetry.io/otel/sdk/trace/tracetest"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
@ -233,8 +234,8 @@ func TestNewBatchSpanProcessorWithEnvOptions(t *testing.T) {
|
||||
wantBatchCount: 1,
|
||||
genNumSpans: 2053,
|
||||
envs: map[string]string{
|
||||
sdktrace.EnvBatchSpanProcessorMaxQueueSize: "5000",
|
||||
sdktrace.EnvBatchSpanProcessorMaxExportBatchSize: "5000",
|
||||
env.BatchSpanProcessorMaxQueueSizeKey: "5000",
|
||||
env.BatchSpanProcessorMaxExportBatchSizeKey: "5000",
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -243,8 +244,8 @@ func TestNewBatchSpanProcessorWithEnvOptions(t *testing.T) {
|
||||
wantBatchCount: 4,
|
||||
genNumSpans: 2053,
|
||||
envs: map[string]string{
|
||||
sdktrace.EnvBatchSpanProcessorMaxQueueSize: "5000",
|
||||
sdktrace.EnvBatchSpanProcessorMaxExportBatchSize: "10000",
|
||||
env.BatchSpanProcessorMaxQueueSizeKey: "5000",
|
||||
env.BatchSpanProcessorMaxExportBatchSizeKey: "10000",
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -253,17 +254,17 @@ func TestNewBatchSpanProcessorWithEnvOptions(t *testing.T) {
|
||||
wantBatchCount: 42,
|
||||
genNumSpans: 2053,
|
||||
envs: map[string]string{
|
||||
sdktrace.EnvBatchSpanProcessorMaxQueueSize: "50",
|
||||
sdktrace.EnvBatchSpanProcessorMaxExportBatchSize: "10000",
|
||||
env.BatchSpanProcessorMaxQueueSizeKey: "50",
|
||||
env.BatchSpanProcessorMaxExportBatchSizeKey: "10000",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
envStore := ottest.NewEnvStore()
|
||||
envStore.Record(sdktrace.EnvBatchSpanProcessorScheduleDelay)
|
||||
envStore.Record(sdktrace.EnvBatchSpanProcessorExportTimeout)
|
||||
envStore.Record(sdktrace.EnvBatchSpanProcessorMaxQueueSize)
|
||||
envStore.Record(sdktrace.EnvBatchSpanProcessorMaxExportBatchSize)
|
||||
envStore.Record(env.BatchSpanProcessorScheduleDelayKey)
|
||||
envStore.Record(env.BatchSpanProcessorExportTimeoutKey)
|
||||
envStore.Record(env.BatchSpanProcessorMaxQueueSizeKey)
|
||||
envStore.Record(env.BatchSpanProcessorMaxExportBatchSizeKey)
|
||||
|
||||
defer func() {
|
||||
require.NoError(t, envStore.Restore())
|
||||
|
@ -1,59 +0,0 @@
|
||||
// Copyright The OpenTelemetry Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package trace // import "go.opentelemetry.io/otel/sdk/trace"
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
)
|
||||
|
||||
// Environment variable names
|
||||
const (
|
||||
// EnvBatchSpanProcessorScheduleDelay
|
||||
// Delay interval between two consecutive exports.
|
||||
// i.e. 5000
|
||||
EnvBatchSpanProcessorScheduleDelay = "OTEL_BSP_SCHEDULE_DELAY"
|
||||
// EnvBatchSpanProcessorExportTimeout
|
||||
// Maximum allowed time to export data.
|
||||
// i.e. 3000
|
||||
EnvBatchSpanProcessorExportTimeout = "OTEL_BSP_EXPORT_TIMEOUT"
|
||||
// EnvBatchSpanProcessorMaxQueueSize
|
||||
// Maximum queue size
|
||||
// i.e. 2048
|
||||
EnvBatchSpanProcessorMaxQueueSize = "OTEL_BSP_MAX_QUEUE_SIZE"
|
||||
// EnvBatchSpanProcessorMaxExportBatchSize
|
||||
// Maximum batch size
|
||||
// Note: Must be less than or equal to EnvBatchSpanProcessorMaxQueueSize
|
||||
// i.e. 512
|
||||
EnvBatchSpanProcessorMaxExportBatchSize = "OTEL_BSP_MAX_EXPORT_BATCH_SIZE"
|
||||
)
|
||||
|
||||
// intEnvOr returns an env variable's numeric value if it is exists (and valid) or the default if not
|
||||
func intEnvOr(key string, defaultValue int) int {
|
||||
value, ok := os.LookupEnv(key)
|
||||
if !ok {
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
intValue, err := strconv.Atoi(value)
|
||||
if err != nil {
|
||||
global.Info("Got invalid value, number value expected.", key, value)
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
return intValue
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user