@@ -16,7 +16,9 @@ import (
1616 "sync"
1717 "time"
1818
19+ "github.com/goccy/go-yaml"
1920 pkgConfig "github.com/nginx/agent/v3/pkg/config"
21+ "go.opentelemetry.io/collector/confmap"
2022
2123 "github.com/nginx/agent/v3/api/grpc/mpi/v1"
2224 "github.com/nginx/agent/v3/internal/backoff"
@@ -384,6 +386,31 @@ func (oc *Collector) updateHeadersSetterExtension(
384386 return headersSetterExtensionUpdated
385387}
386388
389+ func (oc * Collector ) writeRunningConfig (ctx context.Context , settings otelcol.CollectorSettings ) error {
390+ slog .DebugContext (ctx , "Writing running OTel collector config" , "path" ,
391+ "/var/lib/nginx-agent/opentelemetry-collector-agent-debug.yaml" )
392+ resolver , err := confmap .NewResolver (settings .ConfigProviderSettings .ResolverSettings )
393+ if err != nil {
394+ return fmt .Errorf ("unable to create resolver: %w" , err )
395+ }
396+
397+ con , err := resolver .Resolve (ctx )
398+ if err != nil {
399+ return fmt .Errorf ("error while resolving config: %w" , err )
400+ }
401+ b , err := yaml .Marshal (con .ToStringMap ())
402+ if err != nil {
403+ return fmt .Errorf ("error while marshaling to YAML: %w" , err )
404+ }
405+
406+ writeErr := os .WriteFile ("/var/lib/nginx-agent/opentelemetry-collector-agent-debug.yaml" , b , filePermission )
407+ if writeErr != nil {
408+ return fmt .Errorf ("error while writing debug config: %w" , err )
409+ }
410+
411+ return nil
412+ }
413+
387414func (oc * Collector ) restartCollector (ctx context.Context ) {
388415 err := oc .Close (ctx )
389416 if err != nil {
@@ -392,6 +419,14 @@ func (oc *Collector) restartCollector(ctx context.Context) {
392419 }
393420
394421 settings := OTelCollectorSettings (oc .config )
422+
423+ if strings .ToLower (oc .config .Log .Level ) == "debug" {
424+ writeErr := oc .writeRunningConfig (ctx , settings )
425+ if writeErr != nil {
426+ slog .ErrorContext (ctx , "Failed to write debug OTel Collector config" , "error" , writeErr )
427+ }
428+ }
429+
395430 oTelCollector , err := otelcol .NewCollector (settings )
396431 if err != nil {
397432 slog .ErrorContext (ctx , "Failed to create OTel Collector" , "error" , err )
0 commit comments