Skip to content

Commit e4615c9

Browse files
committed
beholder: add Telemetry.LogLevel config option for log streaming
1 parent 98903c7 commit e4615c9

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

pkg/beholder/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"go.opentelemetry.io/otel/attribute"
77
"go.opentelemetry.io/otel/sdk/metric"
88
"go.opentelemetry.io/otel/sdk/trace"
9+
"go.uber.org/zap/zapcore"
910
)
1011

1112
type Config struct {
@@ -48,6 +49,7 @@ type Config struct {
4849
// Retry config for shared log exporter, used by Emitter and Logger
4950
LogRetryConfig *RetryConfig
5051
LogStreamingEnabled bool // Enable logs streaming to the OTel log exporter
52+
LogLevel zapcore.Level // Log level for telemetry streaming
5153

5254
// Auth
5355
AuthPublicKeyHex string

pkg/loop/config.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"time"
1010

1111
"github.com/hashicorp/go-plugin"
12+
"go.uber.org/zap/zapcore"
1213

1314
"github.com/smartcontractkit/chainlink-common/pkg/config"
1415
)
@@ -62,6 +63,7 @@ const (
6263
envTelemetryEmitterExportMaxBatchSize = "CL_TELEMETRY_EMITTER_EXPORT_MAX_BATCH_SIZE"
6364
envTelemetryEmitterMaxQueueSize = "CL_TELEMETRY_EMITTER_MAX_QUEUE_SIZE"
6465
envTelemetryLogStreamingEnabled = "CL_TELEMETRY_LOG_STREAMING_ENABLED"
66+
envTelemetryLogLevel = "CL_TELEMETRY_LOG_LEVEL"
6567

6668
envChipIngressEndpoint = "CL_CHIP_INGRESS_ENDPOINT"
6769
envChipIngressInsecureConnection = "CL_CHIP_INGRESS_INSECURE_CONNECTION"
@@ -118,6 +120,7 @@ type EnvConfig struct {
118120
TelemetryEmitterExportMaxBatchSize int
119121
TelemetryEmitterMaxQueueSize int
120122
TelemetryLogStreamingEnabled bool
123+
TelemetryLogLevel zapcore.Level
121124

122125
ChipIngressEndpoint string
123126
ChipIngressInsecureConnection bool
@@ -186,7 +189,8 @@ func (e *EnvConfig) AsCmdEnv() (env []string) {
186189
add(envTelemetryEmitterExportInterval, e.TelemetryEmitterExportInterval.String())
187190
add(envTelemetryEmitterExportMaxBatchSize, strconv.Itoa(e.TelemetryEmitterExportMaxBatchSize))
188191
add(envTelemetryEmitterMaxQueueSize, strconv.Itoa(e.TelemetryEmitterMaxQueueSize))
189-
add(envTelemetryLogStreamingEnabled, strconv.FormatBool(e.TelemetryLogStreamingEnabled))
192+
add(envTelemetryLogStreamingEnabled, strconv.FormatBool(e.TelemetryLogStreamingEnabled))
193+
add(envTelemetryLogLevel, e.TelemetryLogLevel.String())
190194

191195
add(envChipIngressEndpoint, e.ChipIngressEndpoint)
192196
add(envChipIngressInsecureConnection, strconv.FormatBool(e.ChipIngressInsecureConnection))
@@ -351,6 +355,15 @@ func (e *EnvConfig) parse() error {
351355
if err != nil {
352356
return fmt.Errorf("failed to parse %s: %w", envTelemetryLogStreamingEnabled, err)
353357
}
358+
logLevelStr := os.Getenv(envTelemetryLogLevel)
359+
if logLevelStr == "" {
360+
logLevelStr = "info" // Default log level
361+
}
362+
var logLevel zapcore.Level
363+
if err := logLevel.Set(logLevelStr); err != nil {
364+
logLevel = zapcore.InfoLevel // Fallback to info level on invalid input
365+
}
366+
e.TelemetryLogLevel = logLevel
354367
// Optional
355368
e.ChipIngressEndpoint = os.Getenv(envChipIngressEndpoint)
356369
e.ChipIngressInsecureConnection, err = getBool(envChipIngressInsecureConnection)

0 commit comments

Comments
 (0)