Skip to content

Commit

Permalink
Merge pull request #12 from spryker/feature/dev-frw-9795-updated-attr…
Browse files Browse the repository at this point in the history
…-names

FRW-9795 As a Project Engineer I want that Spryker instrumentation used standardized attributes
  • Loading branch information
gechetspr authored Jan 27, 2025
2 parents c772651 + 093661d commit e6f2022
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,107 +26,97 @@ class ElasticaInstrumentation
/**
* @var string
*/
protected const NAME = 'spryker_otel_elastica';

/**
* @var string
*/
protected const METHOD_NAME_REQUEST = 'request';

/**
* @var string
*/
protected const METHOD_NAME_UPDATE_DOCUMENTS = 'updateDocuments';
public const ATTRIBUTE_QUERY_TIME = 'spr.search.queryTime';

/**
* @var string
*/
protected const METHOD_NAME_UPDATE_DOCUMENT = 'updateDocument';
public const ATTRIBUTE_SEARCH_INDEX = 'spr.search.index';

/**
* @var string
*/
protected const METHOD_NAME_ADD_DOCUMENTS = 'addDocuments';
public const ATTRIBUTE_SEARCH_INDEXES = 'spr.search.indexes';

/**
* @var string
*/
protected const METHOD_NAME_DELETE_DOCUMENTS = 'deleteDocuments';
public const ATTRIBUTE_SEARCH_ID = 'spr.search.id';

/**
* @var string
*/
protected const METHOD_NAME_DELETE_IDS = 'deleteIds';
public const ATTRIBUTE_SEARCH_IDS = 'spr.search.ids';

/**
* @var string
*/
protected const SPAN_NAME_REQUEST = 'elasticsearch-request';
protected const NAME = 'spryker_otel_elastica';

/**
* @var string
*/
protected const SPAN_NAME_UPDATE_DOCUMENTS = 'elasticsearch-update-documents';
protected const METHOD_NAME_REQUEST = 'request';

/**
* @var string
*/
protected const SPAN_NAME_UPDATE_DOCUMENT = 'elasticsearch-update-document';
protected const METHOD_NAME_UPDATE_DOCUMENTS = 'updateDocuments';

/**
* @var string
*/
protected const SPAN_NAME_ADD_DOCUMENTS = 'elasticsearch-add-document';
protected const METHOD_NAME_UPDATE_DOCUMENT = 'updateDocument';

/**
* @var string
*/
protected const SPAN_NAME_DELETE_DOCUMENTS = 'elasticsearch-delete-documents';
protected const METHOD_NAME_ADD_DOCUMENTS = 'addDocuments';

/**
* @var string
*/
protected const SPAN_NAME_DELETE_IDS = 'elasticsearch-delete-ids';
protected const METHOD_NAME_DELETE_DOCUMENTS = 'deleteDocuments';

/**
* @var string
*/
protected const HEADER_HOST = 'host';
protected const METHOD_NAME_DELETE_IDS = 'deleteIds';

/**
* @var string
*/
protected const ATTRIBUTE_QUERY_TIME = 'queryTime';
protected const SPAN_NAME_REQUEST = 'elasticsearch-request';

/**
* @var string
*/
protected const ATTRIBUTE_SEARCH_INDEX = 'search.index';
protected const SPAN_NAME_UPDATE_DOCUMENTS = 'elasticsearch-update-documents';

/**
* @var string
*/
protected const ATTRIBUTE_SEARCH_INDEXES = 'search.indexes';
protected const SPAN_NAME_UPDATE_DOCUMENT = 'elasticsearch-update-document';

/**
* @var string
*/
protected const ATTRIBUTE_SEARCH_ID = 'search.id';
protected const SPAN_NAME_ADD_DOCUMENTS = 'elasticsearch-add-document';

/**
* @var string
*/
protected const ATTRIBUTE_SEARCH_IDS = 'search.ids';
protected const SPAN_NAME_DELETE_DOCUMENTS = 'elasticsearch-delete-documents';

/**
* @var string
*/
protected const ATTRIBUTE_SEARCH_QUERY = 'search.query';
protected const SPAN_NAME_DELETE_IDS = 'elasticsearch-delete-ids';

/**
* @var string
*/
protected const ATTRIBUTE_ROOT_URL = 'root.url';
protected const HEADER_HOST = 'host';

/**
* @return void
Expand Down Expand Up @@ -160,8 +150,8 @@ function: static::METHOD_NAME_REQUEST,
->setParent($context)
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_INDEX, $params[0])
->setAttribute(static::ATTRIBUTE_SEARCH_QUERY, serialize($params[2]))
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::DB_QUERY_TEXT, serialize($params[2]))
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down Expand Up @@ -213,7 +203,7 @@ function: static::METHOD_NAME_UPDATE_DOCUMENTS,
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_INDEXES, implode(',', $indexes))
->setAttribute(static::ATTRIBUTE_SEARCH_IDS, implode(',', array_keys($indexes)))
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down Expand Up @@ -265,7 +255,7 @@ function: static::METHOD_NAME_ADD_DOCUMENTS,
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_INDEXES, implode(',', $indexes))
->setAttribute(static::ATTRIBUTE_SEARCH_IDS, implode(',', array_keys($indexes)))
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down Expand Up @@ -315,7 +305,7 @@ function: static::METHOD_NAME_UPDATE_DOCUMENT,
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_ID, $params[0])
->setAttribute(static::ATTRIBUTE_SEARCH_INDEX, $params[2])
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down Expand Up @@ -367,7 +357,7 @@ function: static::METHOD_NAME_DELETE_DOCUMENTS,
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_INDEXES, implode(',', $indexes))
->setAttribute(static::ATTRIBUTE_SEARCH_IDS, implode(',', array_keys($indexes)))
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down Expand Up @@ -419,7 +409,7 @@ function: static::METHOD_NAME_DELETE_IDS,
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::ATTRIBUTE_SEARCH_INDEXES, implode(',', $indexes))
->setAttribute(static::ATTRIBUTE_SEARCH_IDS, implode(',', array_keys($indexes)))
->setAttribute(static::ATTRIBUTE_ROOT_URL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_FULL, $request->getRequest()->getUri())
->setAttribute(TraceAttributes::URL_DOMAIN, $request->getRequest()->headers->get(static::HEADER_HOST))
->startSpan();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use OpenTelemetry\API\Trace\StatusCode;
use OpenTelemetry\Context\Context;
use OpenTelemetry\SDK\Sdk;
use OpenTelemetry\SemConv\TraceAttributes;
use Propel\Runtime\Connection\StatementInterface;
use Spryker\Service\Opentelemetry\Instrumentation\Sampler\CriticalSpanRatioSampler;
use Spryker\Service\Opentelemetry\Instrumentation\Sampler\TraceSampleResult;
Expand All @@ -36,11 +37,6 @@ class PropelInstrumentation
*/
protected const METHOD_NAME = 'execute';

/**
* @var string
*/
protected const ATTRIBUTE_QUERY = 'query';

/**
* @return void
*/
Expand Down Expand Up @@ -72,7 +68,7 @@ function: static::METHOD_NAME,
->spanBuilder(sprintf(static::SPAN_NAME_PATTERN, substr($query, 0, 20)))
->setParent($context)
->setSpanKind(SpanKind::KIND_CLIENT)
->setAttribute(static::ATTRIBUTE_QUERY, $query)
->setAttribute(TraceAttributes::DB_QUERY_TEXT, $query)
->setAttribute($criticalAttr, true)
->startSpan();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,6 @@ class RabbitMqInstrumentation
*/
protected const NAME = 'spryker_otel_rabbitmq';

/**
* @var string
*/
protected const ATTRIBUTE_QUEUE_NAME = 'queue.name';

/**
* @var string
*/
Expand All @@ -43,7 +38,7 @@ class RabbitMqInstrumentation
/**
* @var string
*/
protected const ATTRIBUTE_EVENT_LISTENER_CLASS_NAME = 'event.listenerClassName';
protected const ATTRIBUTE_EVENT_LISTENER_CLASS_NAME = 'spr.event.listenerClassName';

/**
* @var string
Expand Down Expand Up @@ -136,7 +131,7 @@ function: $functionName,
->setParent($context)
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(TraceAttributes::HTTP_REQUEST_METHOD, $request->getMethod())
->setAttribute(static::ATTRIBUTE_QUEUE_NAME, $params[0]);
->setAttribute(TraceAttributes::MESSAGING_DESTINATION_NAME, $params[0]);

if (static::isValidMessage($params)) {
$eventQueueSendMessageBodyArray = json_decode($params[1][0]->getBody(), true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ class RedisInstrumentation
/**
* @var string
*/
protected const NAME = 'spryker_otel_redis';
public const ATTRIBUTE_EVAL_SCRIPT = 'spr.script';

/**
* @var string
*/
protected const PARAM_EVAL_SCRIPT = 'script';
protected const NAME = 'spryker_otel_redis';

/**
* @var string
Expand Down Expand Up @@ -151,7 +151,7 @@ public static function register(): void
->setSpanKind(SpanKind::KIND_CLIENT)
->setParent($context)
->setAttribute(CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE, true)
->setAttribute(static::PARAM_EVAL_SCRIPT, $params[0] ?? 'undefined')
->setAttribute(static::ATTRIBUTE_EVAL_SCRIPT, $params[0] ?? 'undefined')
->startSpan();

Context::storage()->attach($span->storeInContext($context));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
use OpenTelemetry\SDK\Common\Attribute\AttributeValidator;
use OpenTelemetry\SDK\Common\Attribute\AttributeValidatorInterface;
use OpenTelemetry\SemConv\TraceAttributes;
use Spryker\Service\Opentelemetry\Instrumentation\ElasticaInstrumentation;
use Spryker\Service\Opentelemetry\Instrumentation\RedisInstrumentation;
use Spryker\Service\Opentelemetry\Instrumentation\Sampler\CriticalSpanRatioSampler;
use Spryker\Service\Opentelemetry\Instrumentation\SprykerInstrumentationBootstrap;

Expand Down Expand Up @@ -132,17 +134,26 @@ protected function getSafeAttributes(): array
TraceAttributes::CODE_LINENO,
TraceAttributes::CODE_FUNCTION,
TraceAttributes::URL_QUERY,
'query',
TraceAttributes::HTTP_RESPONSE_STATUS_CODE,
TraceAttributes::HTTP_REQUEST_METHOD,
'queue.name',
'queryTime',
'search.index',
'search.query',
'root.url',
TraceAttributes::URL_FULL,
TraceAttributes::DB_QUERY_TEXT,
TraceAttributes::MESSAGING_DESTINATION_NAME,
TraceAttributes::USER_AGENT_ORIGINAL,
TraceAttributes::NETWORK_PROTOCOL_VERSION,
TraceAttributes::SERVER_PORT,
TraceAttributes::SERVER_ADDRESS,
TraceAttributes::ERROR_TYPE,
TraceAttributes::EXCEPTION_MESSAGE,
TraceAttributes::URL_DOMAIN,
RedisInstrumentation::ATTRIBUTE_EVAL_SCRIPT,
ElasticaInstrumentation::ATTRIBUTE_QUERY_TIME,
ElasticaInstrumentation::ATTRIBUTE_SEARCH_INDEX,
ElasticaInstrumentation::ATTRIBUTE_SEARCH_ID,
ElasticaInstrumentation::ATTRIBUTE_SEARCH_IDS,
ElasticaInstrumentation::ATTRIBUTE_SEARCH_INDEXES,
CriticalSpanRatioSampler::IS_CRITICAL_ATTRIBUTE,
CriticalSpanRatioSampler::NO_CRITICAL_ATTRIBUTE,
SprykerInstrumentationBootstrap::ATTRIBUTE_HTTP_METHOD,
SprykerInstrumentationBootstrap::ATTRIBUTE_IS_DETAILED_TRACE,
];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

namespace Spryker\Service\Opentelemetry\Instrumentation\Span;

use OpenTelemetry\API\Trace\SpanContextInterface;
use OpenTelemetry\SDK\Common\Attribute\AttributesInterface;
use OpenTelemetry\SDK\Common\Instrumentation\InstrumentationScopeInterface;
use OpenTelemetry\SDK\Resource\ResourceInfo;
Expand Down Expand Up @@ -40,15 +41,15 @@ public function getKind(): int
/**
* @return \OpenTelemetry\API\Trace\SpanContextInterface
*/
public function getContext(): \OpenTelemetry\API\Trace\SpanContextInterface
public function getContext(): SpanContextInterface
{
return $this->span->getContext();
}

/**
* @return \OpenTelemetry\API\Trace\SpanContextInterface
*/
public function getParentContext(): \OpenTelemetry\API\Trace\SpanContextInterface
public function getParentContext(): SpanContextInterface
{
return $this->span->getParentContext();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ public static function startSpan(
$startEpochNanos !== 0 ? $startEpochNanos : Clock::getDefault()->now()
);

// Call onStart here to ensure the span is fully initialized.
$spanProcessor->onStart($span, $parentContext);

return $span;
Expand Down Expand Up @@ -300,12 +299,10 @@ public function setStatus(string $code, ?string $description = null): self
return $this;
}

// An attempt to set value Unset SHOULD be ignored.
if ($code === StatusCode::STATUS_UNSET) {
return $this;
}

// When span status is set to Ok it SHOULD be considered final and any further attempts to change it SHOULD be ignored.
if ($this->status->getCode() === StatusCode::STATUS_OK) {
return $this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,6 @@ class SprykerInstrumentationBootstrap
*/
public const ATTRIBUTE_IS_DETAILED_TRACE = 'detailed';

/**
* @var string
*/
public const ATTRIBUTE_HTTP_METHOD = 'method';

/**
* @var string
*/
Expand Down Expand Up @@ -295,9 +290,9 @@ protected static function registerRootSpan(Request $request): void
->spanBuilder($name)
->setParent($parent)
->setSpanKind(SpanKind::KIND_SERVER)
->setAttribute(TraceAttributes::URL_QUERY, $request->getQueryString())
->setAttribute(TraceAttributes::URL_FULL, $request->getUri())
->setAttribute(static::ATTRIBUTE_IS_DETAILED_TRACE, !TraceSampleResult::shouldSkipTraceBody())
->setAttribute(static::ATTRIBUTE_HTTP_METHOD, $request->getMethod())
->setAttribute(TraceAttributes::HTTP_REQUEST_METHOD, $request->getMethod())
->startSpan();

Context::storage()->attach($span->storeInContext($parent));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ function: \'%s\',
if ($exception !== null) {
$span->recordException($exception);
$span->setAttribute(\'error_message\', $exception->getMessage());
$span->setAttribute(\'error_code\', $exception->getCode());
$span->setAttribute(\\OpenTelemetry\\SemConv\\TraceAttributes::EXCEPTION_MESSAGE, $exception->getMessage());
$span->setAttribute(\\OpenTelemetry\\SemConv\\TraceAttributes::ERROR_TYPE, $exception->getCode());
}
$span->setStatus($exception !== null ? \\OpenTelemetry\\API\\Trace\\StatusCode::STATUS_ERROR : \\OpenTelemetry\\API\\Trace\\StatusCode::STATUS_OK);
Expand Down

0 comments on commit e6f2022

Please sign in to comment.