Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 54 additions & 54 deletions aws-opentelemetry-distro/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,62 +24,62 @@ classifiers = [
]

dependencies = [
"opentelemetry-api == 1.27.0",
"opentelemetry-sdk == 1.27.0",
"opentelemetry-exporter-otlp-proto-grpc == 1.27.0",
"opentelemetry-exporter-otlp-proto-http == 1.27.0",
"opentelemetry-propagator-b3 == 1.27.0",
"opentelemetry-propagator-jaeger == 1.27.0",
"opentelemetry-exporter-otlp-proto-common == 1.27.0",
"opentelemetry-api == 1.33.1",
"opentelemetry-sdk == 1.33.1",
"opentelemetry-exporter-otlp-proto-grpc == 1.33.1",
"opentelemetry-exporter-otlp-proto-http == 1.33.1",
"opentelemetry-propagator-b3 == 1.33.1",
"opentelemetry-propagator-jaeger == 1.33.1",
"opentelemetry-exporter-otlp-proto-common == 1.33.1",
"opentelemetry-sdk-extension-aws == 2.0.2",
"opentelemetry-propagator-aws-xray == 1.0.1",
"opentelemetry-distro == 0.48b0",
"opentelemetry-processor-baggage == 0.48b0",
"opentelemetry-propagator-ot-trace == 0.48b0",
"opentelemetry-instrumentation == 0.48b0",
"opentelemetry-instrumentation-aws-lambda == 0.48b0",
"opentelemetry-instrumentation-aio-pika == 0.48b0",
"opentelemetry-instrumentation-aiohttp-client == 0.48b0",
"opentelemetry-instrumentation-aiopg == 0.48b0",
"opentelemetry-instrumentation-asgi == 0.48b0",
"opentelemetry-instrumentation-asyncpg == 0.48b0",
"opentelemetry-instrumentation-boto == 0.48b0",
"opentelemetry-instrumentation-boto3sqs == 0.48b0",
"opentelemetry-instrumentation-botocore == 0.48b0",
"opentelemetry-instrumentation-celery == 0.48b0",
"opentelemetry-instrumentation-confluent-kafka == 0.48b0",
"opentelemetry-instrumentation-dbapi == 0.48b0",
"opentelemetry-instrumentation-django == 0.48b0",
"opentelemetry-instrumentation-elasticsearch == 0.48b0",
"opentelemetry-instrumentation-falcon == 0.48b0",
"opentelemetry-instrumentation-fastapi == 0.48b0",
"opentelemetry-instrumentation-flask == 0.48b0",
"opentelemetry-instrumentation-grpc == 0.48b0",
"opentelemetry-instrumentation-httpx == 0.48b0",
"opentelemetry-instrumentation-jinja2 == 0.48b0",
"opentelemetry-instrumentation-kafka-python == 0.48b0",
"opentelemetry-instrumentation-logging == 0.48b0",
"opentelemetry-instrumentation-mysql == 0.48b0",
"opentelemetry-instrumentation-mysqlclient == 0.48b0",
"opentelemetry-instrumentation-pika == 0.48b0",
"opentelemetry-instrumentation-psycopg2 == 0.48b0",
"opentelemetry-instrumentation-pymemcache == 0.48b0",
"opentelemetry-instrumentation-pymongo == 0.48b0",
"opentelemetry-instrumentation-pymysql == 0.48b0",
"opentelemetry-instrumentation-pyramid == 0.48b0",
"opentelemetry-instrumentation-redis == 0.48b0",
"opentelemetry-instrumentation-remoulade == 0.48b0",
"opentelemetry-instrumentation-requests == 0.48b0",
"opentelemetry-instrumentation-sqlalchemy == 0.48b0",
"opentelemetry-instrumentation-sqlite3 == 0.48b0",
"opentelemetry-instrumentation-starlette == 0.48b0",
"opentelemetry-instrumentation-system-metrics == 0.48b0",
"opentelemetry-instrumentation-tornado == 0.48b0",
"opentelemetry-instrumentation-tortoiseorm == 0.48b0",
"opentelemetry-instrumentation-urllib == 0.48b0",
"opentelemetry-instrumentation-urllib3 == 0.48b0",
"opentelemetry-instrumentation-wsgi == 0.48b0",
"opentelemetry-instrumentation-cassandra == 0.48b0",
"opentelemetry-distro == 0.54b1",
"opentelemetry-processor-baggage == 0.54b1",
"opentelemetry-propagator-ot-trace == 0.54b1",
"opentelemetry-instrumentation == 0.54b1",
"opentelemetry-instrumentation-aws-lambda == 0.54b1",
"opentelemetry-instrumentation-aio-pika == 0.54b1",
"opentelemetry-instrumentation-aiohttp-client == 0.54b1",
"opentelemetry-instrumentation-aiopg == 0.54b1",
"opentelemetry-instrumentation-asgi == 0.54b1",
"opentelemetry-instrumentation-asyncpg == 0.54b1",
"opentelemetry-instrumentation-boto == 0.54b1",
"opentelemetry-instrumentation-boto3sqs == 0.54b1",
"opentelemetry-instrumentation-botocore == 0.54b1",
"opentelemetry-instrumentation-celery == 0.54b1",
"opentelemetry-instrumentation-confluent-kafka == 0.54b1",
"opentelemetry-instrumentation-dbapi == 0.54b1",
"opentelemetry-instrumentation-django == 0.54b1",
"opentelemetry-instrumentation-elasticsearch == 0.54b1",
"opentelemetry-instrumentation-falcon == 0.54b1",
"opentelemetry-instrumentation-fastapi == 0.54b1",
"opentelemetry-instrumentation-flask == 0.54b1",
"opentelemetry-instrumentation-grpc == 0.54b1",
"opentelemetry-instrumentation-httpx == 0.54b1",
"opentelemetry-instrumentation-jinja2 == 0.54b1",
"opentelemetry-instrumentation-kafka-python == 0.54b1",
"opentelemetry-instrumentation-logging == 0.54b1",
"opentelemetry-instrumentation-mysql == 0.54b1",
"opentelemetry-instrumentation-mysqlclient == 0.54b1",
"opentelemetry-instrumentation-pika == 0.54b1",
"opentelemetry-instrumentation-psycopg2 == 0.54b1",
"opentelemetry-instrumentation-pymemcache == 0.54b1",
"opentelemetry-instrumentation-pymongo == 0.54b1",
"opentelemetry-instrumentation-pymysql == 0.54b1",
"opentelemetry-instrumentation-pyramid == 0.54b1",
"opentelemetry-instrumentation-redis == 0.54b1",
"opentelemetry-instrumentation-remoulade == 0.54b1",
"opentelemetry-instrumentation-requests == 0.54b1",
"opentelemetry-instrumentation-sqlalchemy == 0.54b1",
"opentelemetry-instrumentation-sqlite3 == 0.54b1",
"opentelemetry-instrumentation-starlette == 0.54b1",
"opentelemetry-instrumentation-system-metrics == 0.54b1",
"opentelemetry-instrumentation-tornado == 0.54b1",
"opentelemetry-instrumentation-tortoiseorm == 0.54b1",
"opentelemetry-instrumentation-urllib == 0.54b1",
"opentelemetry-instrumentation-urllib3 == 0.54b1",
"opentelemetry-instrumentation-wsgi == 0.54b1",
"opentelemetry-instrumentation-cassandra == 0.54b1",
]

[project.optional-dependencies]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
)
from amazon.opentelemetry.distro._aws_resource_attribute_configurator import get_service_attribute
from amazon.opentelemetry.distro._aws_span_processing_util import (
GEN_AI_REQUEST_MODEL,
LOCAL_ROOT,
MAX_KEYWORD_LENGTH,
SQL_KEYWORD_PATTERN,
Expand All @@ -60,6 +59,7 @@
from amazon.opentelemetry.distro.sqs_url_parser import SqsUrlParser
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import BoundedAttributes, ReadableSpan
from opentelemetry.semconv._incubating.attributes.gen_ai_attributes import GEN_AI_REQUEST_MODEL
from opentelemetry.semconv.trace import SpanAttributes

# Pertinent OTEL attribute keys
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,6 @@
# Max keyword length supported by parsing into remote_operation from DB_STATEMENT
MAX_KEYWORD_LENGTH = 27

# TODO: Use Semantic Conventions once upgrade to 0.47b0
GEN_AI_REQUEST_MODEL: str = "gen_ai.request.model"
GEN_AI_SYSTEM: str = "gen_ai.system"
GEN_AI_REQUEST_MAX_TOKENS: str = "gen_ai.request.max_tokens"
GEN_AI_REQUEST_TEMPERATURE: str = "gen_ai.request.temperature"
GEN_AI_REQUEST_TOP_P: str = "gen_ai.request.top_p"
GEN_AI_RESPONSE_FINISH_REASONS: str = "gen_ai.response.finish_reasons"
GEN_AI_USAGE_INPUT_TOKENS: str = "gen_ai.usage.input_tokens"
GEN_AI_USAGE_OUTPUT_TOKENS: str = "gen_ai.usage.output_tokens"


# Get dialect keywords retrieved from dialect_keywords.json file.
# Only meant to be invoked by SQL_KEYWORD_PATTERN and unit tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# SPDX-License-Identifier: Apache-2.0

import os
import sys
from importlib.metadata import PackageNotFoundError, version
from logging import Logger, getLogger

import pkg_resources
from packaging.requirements import Requirement

_logger: Logger = getLogger(__name__)

Expand All @@ -14,15 +14,21 @@

def is_installed(req: str) -> bool:
"""Is the given required package installed?"""

if req in sys.modules and sys.modules[req] is not None:
return True
req = Requirement(req)

try:
pkg_resources.get_distribution(req)
except Exception as exc: # pylint: disable=broad-except
dist_version = version(req.name)
except PackageNotFoundError as exc:
_logger.debug("Skipping instrumentation patch: package %s, exception: %s", req, exc)
return False

if not list(req.specifier.filter([dist_version])):
_logger.debug(
"instrumentation for package %s is available but version %s is installed. Skipping.",
req,
dist_version,
)
return False
return True


Expand Down
Loading
Loading