[#17] config: Add resource attributes
All checks were successful
DCO action / DCO (pull_request) Successful in 1m15s
Tests and linters / Tests (pull_request) Successful in 1m37s
Tests and linters / Staticcheck (pull_request) Successful in 1m46s
Tests and linters / Tests with -race (pull_request) Successful in 2m15s
Tests and linters / Lint (pull_request) Successful in 2m30s

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2024-11-12 11:15:29 +03:00
parent 486af9e0d8
commit f17779933e
Signed by: dstepanov-yadro
GPG key ID: 237AF1A763293BC0
2 changed files with 9 additions and 1 deletions

View file

@ -3,6 +3,7 @@ package tracing
import (
"crypto/x509"
"fmt"
"maps"
)
// Exporter is type of tracing target.
@ -33,6 +34,9 @@ type Config struct {
// Version is version of service instance.
// Optional.
Version string
// Attributes is KV list of attributes.
// Optional.
Attributes map[string]string
}
func (c *Config) validate() error {
@ -81,5 +85,6 @@ func (c *Config) hasChange(other *Config) bool {
func (c *Config) serviceInfoEqual(other *Config) bool {
return c.Service == other.Service &&
c.InstanceID == other.InstanceID &&
c.Version == other.Version
c.Version == other.Version &&
maps.Equal(c.Attributes, other.Attributes)
}

View file

@ -162,6 +162,9 @@ func newResource(cfg *Config) *resource.Resource {
if len(cfg.InstanceID) > 0 {
attrs = append(attrs, semconv.ServiceInstanceID(cfg.InstanceID))
}
for k, v := range cfg.Attributes {
attrs = append(attrs, attribute.String(k, v))
}
return resource.NewWithAttributes(
semconv.SchemaURL,
attrs...,