|
17 | 17 | import { Attributes, TimedEvent, TraceFlags } from '@opentelemetry/api'; |
18 | 18 | import * as assert from 'assert'; |
19 | 19 | import * as transform from '../../src/transform'; |
20 | | -import { ensureSpanIsCorrect, mockedReadableSpan } from '../helper'; |
| 20 | +import { |
| 21 | + ensureSpanIsCorrect, |
| 22 | + mockedReadableSpan, |
| 23 | + mockedResources, |
| 24 | + mockedInstrumentationLibraries, |
| 25 | + multiResourceTrace, |
| 26 | + multiInstrumentationLibraryTrace, |
| 27 | +} from '../helper'; |
21 | 28 | import { Resource } from '@opentelemetry/resources'; |
22 | | -import { InstrumentationLibrary } from '@opentelemetry/core'; |
23 | | -import { ReadableSpan } from '@opentelemetry/tracing'; |
24 | 29 |
|
25 | 30 | describe('transform', () => { |
26 | 31 | describe('toCollectorAttributes', () => { |
@@ -124,171 +129,36 @@ describe('transform', () => { |
124 | 129 |
|
125 | 130 | describe('groupSpans', () => { |
126 | 131 | it('should group by resource', () => { |
127 | | - const resource1: Resource = new Resource({ name: 'resource 1' }); |
128 | | - const resource2: Resource = new Resource({ name: 'resource 2' }); |
129 | | - const instrumentationLibrary: InstrumentationLibrary = { |
130 | | - name: 'lib1', |
131 | | - version: '0.0.1', |
132 | | - }; |
133 | | - |
134 | | - const span1: ReadableSpan = { |
135 | | - name: 'span1', |
136 | | - kind: 0, |
137 | | - spanContext: { |
138 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
139 | | - spanId: '5e107261f64fa53e', |
140 | | - traceFlags: TraceFlags.SAMPLED, |
141 | | - }, |
142 | | - parentSpanId: '78a8915098864388', |
143 | | - startTime: [1574120165, 429803070], |
144 | | - endTime: [1574120165, 438688070], |
145 | | - ended: true, |
146 | | - status: { code: 0 }, |
147 | | - attributes: {}, |
148 | | - links: [], |
149 | | - events: [], |
150 | | - duration: [0, 8885000], |
151 | | - resource: resource1, |
152 | | - instrumentationLibrary, |
153 | | - }; |
154 | | - |
155 | | - const span2: ReadableSpan = { |
156 | | - name: 'span2', |
157 | | - kind: 0, |
158 | | - spanContext: { |
159 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
160 | | - spanId: 'f64fa53e5e107261', |
161 | | - traceFlags: TraceFlags.SAMPLED, |
162 | | - }, |
163 | | - parentSpanId: '86438878a8915098', |
164 | | - startTime: [1575120165, 439803070], |
165 | | - endTime: [1575120165, 448688070], |
166 | | - ended: true, |
167 | | - status: { code: 0 }, |
168 | | - attributes: {}, |
169 | | - links: [], |
170 | | - events: [], |
171 | | - duration: [0, 8775000], |
172 | | - resource: resource2, |
173 | | - instrumentationLibrary, |
174 | | - }; |
175 | | - |
176 | | - const span3: ReadableSpan = { |
177 | | - name: 'span3', |
178 | | - kind: 0, |
179 | | - spanContext: { |
180 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
181 | | - spanId: '07261f64fa53e5e1', |
182 | | - traceFlags: TraceFlags.SAMPLED, |
183 | | - }, |
184 | | - parentSpanId: 'a891578098864388', |
185 | | - startTime: [1575120165, 439803070], |
186 | | - endTime: [1575120165, 448688070], |
187 | | - ended: true, |
188 | | - status: { code: 0 }, |
189 | | - attributes: {}, |
190 | | - links: [], |
191 | | - events: [], |
192 | | - duration: [0, 8775000], |
193 | | - resource: resource2, |
194 | | - instrumentationLibrary, |
195 | | - }; |
| 132 | + const [resource1, resource2] = mockedResources; |
| 133 | + const [instrumentationLibrary] = mockedInstrumentationLibraries; |
| 134 | + const [span1, span2, span3] = multiResourceTrace; |
196 | 135 |
|
197 | 136 | const expected = new Map([ |
198 | 137 | [resource1, new Map([[instrumentationLibrary, [span1]]])], |
199 | 138 | [resource2, new Map([[instrumentationLibrary, [span2, span3]]])], |
200 | 139 | ]); |
201 | 140 |
|
202 | | - const result = transform.groupSpans([span1, span2, span3]); |
| 141 | + const result = transform.groupSpans(multiResourceTrace); |
203 | 142 |
|
204 | 143 | assert.deepStrictEqual(result, expected); |
205 | 144 | }); |
206 | 145 |
|
207 | 146 | it('should group by instrumentation library', () => { |
208 | | - const resource: Resource = new Resource({ name: 'resource 1' }); |
209 | | - const instrumentationLibrary1: InstrumentationLibrary = { |
210 | | - name: 'lib1', |
211 | | - version: '0.0.1', |
212 | | - }; |
213 | | - const instrumentationLibrary2: InstrumentationLibrary = { |
214 | | - name: 'lib2', |
215 | | - version: '0.0.2', |
216 | | - }; |
217 | | - |
218 | | - const span1: ReadableSpan = { |
219 | | - name: 'span1', |
220 | | - kind: 0, |
221 | | - spanContext: { |
222 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
223 | | - spanId: '5e107261f64fa53e', |
224 | | - traceFlags: TraceFlags.SAMPLED, |
225 | | - }, |
226 | | - parentSpanId: '78a8915098864388', |
227 | | - startTime: [1574120165, 429803070], |
228 | | - endTime: [1574120165, 438688070], |
229 | | - ended: true, |
230 | | - status: { code: 0 }, |
231 | | - attributes: {}, |
232 | | - links: [], |
233 | | - events: [], |
234 | | - duration: [0, 8885000], |
235 | | - resource, |
236 | | - instrumentationLibrary: instrumentationLibrary1, |
237 | | - }; |
238 | | - |
239 | | - const span2: ReadableSpan = { |
240 | | - name: 'span2', |
241 | | - kind: 0, |
242 | | - spanContext: { |
243 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
244 | | - spanId: 'f64fa53e5e107261', |
245 | | - traceFlags: TraceFlags.SAMPLED, |
246 | | - }, |
247 | | - parentSpanId: '78a8915098864388', |
248 | | - startTime: [1575120165, 439803070], |
249 | | - endTime: [1575120165, 448688070], |
250 | | - ended: true, |
251 | | - status: { code: 0 }, |
252 | | - attributes: {}, |
253 | | - links: [], |
254 | | - events: [], |
255 | | - duration: [0, 8775000], |
256 | | - resource, |
257 | | - instrumentationLibrary: instrumentationLibrary1, |
258 | | - }; |
259 | | - |
260 | | - const span3: ReadableSpan = { |
261 | | - name: 'span3', |
262 | | - kind: 0, |
263 | | - spanContext: { |
264 | | - traceId: '1f1008dc8e270e85c40a0d7c3939b278', |
265 | | - spanId: '07261f64fa53e5e1', |
266 | | - traceFlags: TraceFlags.SAMPLED, |
267 | | - }, |
268 | | - parentSpanId: 'a891578098864388', |
269 | | - startTime: [1575120165, 439803070], |
270 | | - endTime: [1575120165, 448688070], |
271 | | - ended: true, |
272 | | - status: { code: 0 }, |
273 | | - attributes: {}, |
274 | | - links: [], |
275 | | - events: [], |
276 | | - duration: [0, 8775000], |
277 | | - resource: resource, |
278 | | - instrumentationLibrary: instrumentationLibrary2, |
279 | | - }; |
| 147 | + const [resource] = mockedResources; |
| 148 | + const [lib1, lib2] = mockedInstrumentationLibraries; |
| 149 | + const [span1, span2, span3] = multiInstrumentationLibraryTrace; |
280 | 150 |
|
281 | 151 | const expected = new Map([ |
282 | 152 | [ |
283 | 153 | resource, |
284 | 154 | new Map([ |
285 | | - [instrumentationLibrary1, [span1, span2]], |
286 | | - [instrumentationLibrary2, [span3]], |
| 155 | + [lib1, [span1, span2]], |
| 156 | + [lib2, [span3]], |
287 | 157 | ]), |
288 | 158 | ], |
289 | 159 | ]); |
290 | 160 |
|
291 | | - const result = transform.groupSpans([span1, span2, span3]); |
| 161 | + const result = transform.groupSpans(multiInstrumentationLibraryTrace); |
292 | 162 |
|
293 | 163 | assert.deepStrictEqual(result, expected); |
294 | 164 | }); |
|
0 commit comments