export otlp InstrumentationScope attributes (#825)

* export otlp InstrumentationScope attributes

* remove redundant setting of dropped attributes count
This commit is contained in:
Brett McBride 2022-09-15 10:59:51 +10:00 committed by GitHub
parent 84142d35e9
commit b551294d3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 3 deletions

View File

@ -95,6 +95,7 @@ final class MetricConverter
$pInstrumentationScope = new InstrumentationScope();
$pInstrumentationScope->setName($instrumentationScope->getName());
$pInstrumentationScope->setVersion((string) $instrumentationScope->getVersion());
$this->setAttributes($pInstrumentationScope, $instrumentationScope->getAttributes());
$pScopeMetrics->setScope($pInstrumentationScope);
$pScopeMetrics->setSchemaUrl((string) $instrumentationScope->getSchemaUrl());
@ -230,7 +231,7 @@ final class MetricConverter
}
/**
* @param Resource_|NumberDataPoint|HistogramDataPoint $pElement
* @param Resource_|NumberDataPoint|HistogramDataPoint|InstrumentationScope $pElement
*/
private function setAttributes($pElement, SDK\Common\Attribute\AttributesInterface $attributes): void
{

View File

@ -92,6 +92,7 @@ final class SpanConverter
$pInstrumentationScope = new InstrumentationScope();
$pInstrumentationScope->setName($instrumentationScope->getName());
$pInstrumentationScope->setVersion((string) $instrumentationScope->getVersion());
$this->setAttributes($pInstrumentationScope, $instrumentationScope->getAttributes());
$pScopeSpans->setScope($pInstrumentationScope);
$pScopeSpans->setSchemaUrl((string) $instrumentationScope->getSchemaUrl());
@ -99,7 +100,7 @@ final class SpanConverter
}
/**
* @param Resource_|Span|Event|Link $pElement
* @param Resource_|Span|Event|Link|InstrumentationScope $pElement
*/
private function setAttributes($pElement, AttributesInterface $attributes): void
{

View File

@ -205,4 +205,28 @@ final class MetricConverterTest extends TestCase
])->getResourceMetrics(),
);
}
public function test_instrumentation_scope_is_converted(): void
{
$this->assertJsonStringEqualsJsonString(
<<<JSON
{"resourceMetrics": [{"resource": {},"scopeMetrics": [{
"metrics": [{"description": "description-1","name": "name-1","unit": "unit-1"}],
"schemaUrl": "http://schema.url",
"scope": {"attributes": [{"key": "foo","value": {"stringValue": "bar"}}],"name": "scope-name","version": "scope-version"}
}
]}]}
JSON,
(new MetricConverter())->convert([
new Metric(
new InstrumentationScope('scope-name', 'scope-version', 'http://schema.url', Attributes::create(['foo' => 'bar'])),
ResourceInfoFactory::emptyResource(),
'name-1',
'unit-1',
'description-1',
$this->createMock(DataInterface::class),
),
])->serializeToJsonString(),
);
}
}

View File

@ -166,7 +166,7 @@ class OTLPSpanConverterTest extends TestCase
->setStartEpochNanos($start_time)
->setEndEpochNanos($end_time)
->setName('http_get')
->setInstrumentationScope(new InstrumentationScope('lib-test', 'v0.1.0', 'http://url', Attributes::create([])))
->setInstrumentationScope(new InstrumentationScope('lib-test', 'v0.1.0', 'http://url', Attributes::create(['foo' => 'bar'])))
->addAttribute('user', 'alice')
->addAttribute('authenticated', true)
->addEvent('Event1', Attributes::create(['success' => 'yes']), 1617313804325769955)
@ -204,6 +204,12 @@ class OTLPSpanConverterTest extends TestCase
'scope' => new \Opentelemetry\Proto\Common\V1\InstrumentationScope([
'name' => 'lib-test',
'version' => 'v0.1.0',
'attributes' => [
new KeyValue([
'key' => 'foo',
'value' => new AnyValue(['string_value' => 'bar']),
]),
],
]),
'spans' => [
new V1\Span([