@@ -89,7 +89,7 @@ func (tr2 *trace2Dataset) insertResourceInstrumentationScope(instScope pcommon.I
8989 instScope .SetVersion (Trace2ReceiverVersion )
9090}
9191
92- func (tr2 * trace2Dataset ) ToTraces (dl FilterDetailLevel ) ptrace.Traces {
92+ func (tr2 * trace2Dataset ) ToTraces (dl FilterDetailLevel , keynames FilterKeynames ) ptrace.Traces {
9393 pt := ptrace .NewTraces ()
9494
9595 resourceSpans := pt .ResourceSpans ().AppendEmpty ()
@@ -108,7 +108,7 @@ func (tr2 *trace2Dataset) ToTraces(dl FilterDetailLevel) ptrace.Traces {
108108
109109 // Create an OTEL span for the entire process (aka the main thread).
110110 exeSpan := scopes .Spans ().AppendEmpty ()
111- emitProcessSpan (& exeSpan , tr2 , dl )
111+ emitProcessSpan (& exeSpan , tr2 , dl , keynames )
112112
113113 if WantRegionAndThreadSpans (dl ) {
114114 // Create an OTEL span for the lifetime of each non-main thread.
@@ -188,7 +188,7 @@ func emitSpanEssentials(span *ptrace.Span, r *TrSpanEssentials, tr2 *trace2Datas
188188 span .SetTraceID (tr2 .otelTraceID )
189189}
190190
191- func emitProcessSpan (span * ptrace.Span , tr2 * trace2Dataset , dl FilterDetailLevel ) {
191+ func emitProcessSpan (span * ptrace.Span , tr2 * trace2Dataset , dl FilterDetailLevel , keynames FilterKeynames ) {
192192 emitSpanEssentials (span , & tr2 .process .mainThread .lifetime , tr2 )
193193 span .SetKind (ptrace .SpanKindServer )
194194
@@ -254,6 +254,16 @@ func emitProcessSpan(span *ptrace.Span, tr2 *trace2Dataset, dl FilterDetailLevel
254254 sm .PutStr (string (Trace2ParamSet ), string (jargs ))
255255 }
256256
257+ // Emit the repo nickname value directly if present. This is done to make
258+ // it easier to query on them in the collector pipeline without having to
259+ // parse JSON blobs.
260+ if len (keynames .NicknameKey ) > 0 {
261+ nnvalue , ok := tr2 .process .paramSetValues [keynames .NicknameKey ]
262+ if ok && len (nnvalue ) > 0 {
263+ sm .PutStr (string (Trace2RepoNickname ), nnvalue )
264+ }
265+ }
266+
257267 if WantMainThreadTimersAndCounters (dl ) {
258268 // Emit per-thread counters and timers for the main thread because
259269 // it is not handled by `emitNonMainThreadSpan()`.
0 commit comments