Skip to content

Commit 975ff7b

Browse files
authored
OTEL persistence attributes (temporalio#7063)
## What changed? <!-- Describe what has changed in this PR --> Added persistence span attributes. ## Why? <!-- Tell your future self why have you made these changes --> Provide more details for debugging. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> Ran it locally. NOTE: Some persistence requests/responses contain encoded protobuf data. That will be addressed in a future PR. ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) -->
1 parent 7ac04aa commit 975ff7b

13 files changed

Lines changed: 1513 additions & 32 deletions

common/persistence/client/fx.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func DataStoreFactoryProvider(
206206
}
207207

208208
if otel.IsEnabled(tracerProvider) {
209-
dataStoreFactory = telemetry.NewTelemetryDataStoreFactory(dataStoreFactory, tracerProvider.Tracer("persistence"))
209+
dataStoreFactory = telemetry.NewTelemetryDataStoreFactory(dataStoreFactory, logger, tracerProvider.Tracer("persistence"))
210210
}
211211

212212
return dataStoreFactory

common/persistence/persistence_interface.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ type (
232232
// create the shard with the returned value.
233233
InternalGetOrCreateShardRequest struct {
234234
ShardID int32
235-
CreateShardInfo func() (rangeID int64, shardInfo *commonpb.DataBlob, err error)
236-
LifecycleContext context.Context // cancelled when shard is unloaded
235+
CreateShardInfo func() (rangeID int64, shardInfo *commonpb.DataBlob, err error) `json:"-"` // cannot be serialized otherwise
236+
LifecycleContext context.Context // cancelled when shard is unloaded
237237
}
238238

239239
// InternalGetOrCreateShardResponse is the response to GetShard

common/persistence/telemetry/cluster_metadata_store_gen.go

Lines changed: 140 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/persistence/telemetry/data_store_factory.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@ package telemetry
2626

2727
import (
2828
"go.opentelemetry.io/otel/trace"
29+
"go.temporal.io/server/common/log"
2930
"go.temporal.io/server/common/persistence"
3031
)
3132

3233
type (
3334
TelemetryDataStoreFactory struct {
3435
baseFactory persistence.DataStoreFactory
36+
logger log.Logger
3537
tracer trace.Tracer
3638

3739
taskStore persistence.TaskStore
@@ -47,10 +49,12 @@ type (
4749

4850
func NewTelemetryDataStoreFactory(
4951
baseFactory persistence.DataStoreFactory,
52+
logger log.Logger,
5053
tracer trace.Tracer,
5154
) *TelemetryDataStoreFactory {
5255
return &TelemetryDataStoreFactory{
5356
baseFactory: baseFactory,
57+
logger: logger,
5458
tracer: tracer,
5559
}
5660
}
@@ -65,7 +69,7 @@ func (d *TelemetryDataStoreFactory) NewTaskStore() (persistence.TaskStore, error
6569
if err != nil {
6670
return nil, err
6771
}
68-
d.taskStore = newTelemetryTaskStore(baseStore, d.tracer)
72+
d.taskStore = newTelemetryTaskStore(baseStore, d.logger, d.tracer)
6973
}
7074
return d.taskStore, nil
7175
}
@@ -76,7 +80,7 @@ func (d *TelemetryDataStoreFactory) NewShardStore() (persistence.ShardStore, err
7680
if err != nil {
7781
return nil, err
7882
}
79-
d.shardStore = newTelemetryShardStore(baseStore, d.tracer)
83+
d.shardStore = newTelemetryShardStore(baseStore, d.logger, d.tracer)
8084
}
8185
return d.shardStore, nil
8286
}
@@ -87,7 +91,7 @@ func (d *TelemetryDataStoreFactory) NewMetadataStore() (persistence.MetadataStor
8791
if err != nil {
8892
return nil, err
8993
}
90-
d.metadataStore = newTelemetryMetadataStore(baseStore, d.tracer)
94+
d.metadataStore = newTelemetryMetadataStore(baseStore, d.logger, d.tracer)
9195
}
9296
return d.metadataStore, nil
9397
}
@@ -98,7 +102,7 @@ func (d *TelemetryDataStoreFactory) NewExecutionStore() (persistence.ExecutionSt
98102
if err != nil {
99103
return nil, err
100104
}
101-
d.executionStore = newTelemetryExecutionStore(baseStore, d.tracer)
105+
d.executionStore = newTelemetryExecutionStore(baseStore, d.logger, d.tracer)
102106
}
103107
return d.executionStore, nil
104108
}
@@ -109,7 +113,7 @@ func (d *TelemetryDataStoreFactory) NewQueue(queueType persistence.QueueType) (p
109113
if err != nil {
110114
return baseQueue, err
111115
}
112-
d.queue = newTelemetryQueue(baseQueue, d.tracer)
116+
d.queue = newTelemetryQueue(baseQueue, d.logger, d.tracer)
113117
}
114118
return d.queue, nil
115119
}
@@ -120,7 +124,7 @@ func (d *TelemetryDataStoreFactory) NewQueueV2() (persistence.QueueV2, error) {
120124
if err != nil {
121125
return baseQueue, err
122126
}
123-
d.queueV2 = newTelemetryQueueV2(baseQueue, d.tracer)
127+
d.queueV2 = newTelemetryQueueV2(baseQueue, d.logger, d.tracer)
124128
}
125129
return d.queueV2, nil
126130
}
@@ -131,7 +135,7 @@ func (d *TelemetryDataStoreFactory) NewClusterMetadataStore() (persistence.Clust
131135
if err != nil {
132136
return nil, err
133137
}
134-
d.clusterMDStore = newTelemetryClusterMetadataStore(baseStore, d.tracer)
138+
d.clusterMDStore = newTelemetryClusterMetadataStore(baseStore, d.logger, d.tracer)
135139
}
136140
return d.clusterMDStore, nil
137141
}
@@ -142,7 +146,7 @@ func (d *TelemetryDataStoreFactory) NewNexusEndpointStore() (persistence.NexusEn
142146
if err != nil {
143147
return nil, err
144148
}
145-
d.nexusEndpointStore = newTelemetryNexusEndpointStore(baseStore, d.tracer)
149+
d.nexusEndpointStore = newTelemetryNexusEndpointStore(baseStore, d.logger, d.tracer)
146150
}
147151
return d.nexusEndpointStore, nil
148152
}

0 commit comments

Comments
 (0)