Skip to content

Commit 13fff4d

Browse files
author
Fredrik Fristedt
authored
Add Open Telemetry logging signals (#43)
Add Open Telemetry logging signals to increase observability for ETOS Suite Starter. This enables correlation between logging and other Open Telemetry Signals.
1 parent f16687f commit 13fff4d

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ classifiers = [
1616
]
1717
requires-python = ">=3.9"
1818
dependencies = [
19-
"etos_lib==4.3.1",
19+
"etos_lib==4.5.0",
2020
"opentelemetry-api~=1.21",
2121
"opentelemetry-exporter-otlp~=1.21",
22-
"opentelemetry-sdk~=1.21"
22+
"opentelemetry-sdk~=1.21",
23+
"opentelemetry-instrumentation-logging~=0.46b0"
2324
]
2425

2526
[project.urls]

src/suite_starter/__init__.py

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,23 @@
1515
# limitations under the License.
1616
"""ETOS suite starter module."""
1717
import os
18-
from importlib.metadata import version, PackageNotFoundError
18+
from importlib.metadata import PackageNotFoundError, version
1919

20+
from etos_lib.logging.logger import setup_logging
2021
from opentelemetry import trace
2122
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
22-
from opentelemetry.sdk.resources import SERVICE_NAME, SERVICE_NAMESPACE, SERVICE_VERSION, Resource
23+
from opentelemetry.sdk.resources import (
24+
DEPLOYMENT_ENVIRONMENT,
25+
SERVICE_NAME,
26+
SERVICE_VERSION,
27+
OTELResourceDetector,
28+
ProcessResourceDetector,
29+
Resource,
30+
get_aggregated_resources,
31+
)
2332
from opentelemetry.sdk.trace import TracerProvider
2433
from opentelemetry.sdk.trace.export import BatchSpanProcessor
2534

26-
from etos_lib.logging.logger import setup_logging
27-
2835
# The suite starter shall not send logs to RabbitMQ as it
2936
# is too early in the ETOS test run.
3037
os.environ["ETOS_ENABLE_SENDING_LOGS"] = "false"
@@ -37,19 +44,24 @@
3744
BASE = os.path.dirname(os.path.abspath(__file__))
3845
DEV = os.getenv("DEV", "false").lower() == "true"
3946
ENVIRONMENT = "development" if DEV else "production"
40-
setup_logging("ETOS Suite Starter", VERSION, ENVIRONMENT)
47+
OTEL_RESOURCE = Resource.create(
48+
{
49+
SERVICE_NAME: "etos-suite-starter",
50+
SERVICE_VERSION: VERSION,
51+
DEPLOYMENT_ENVIRONMENT: ENVIRONMENT,
52+
}
53+
)
54+
4155

42-
if os.getenv("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"):
43-
PROVIDER = TracerProvider(
44-
resource=Resource.create(
45-
{
46-
SERVICE_NAME: "etos-suite-starter",
47-
SERVICE_VERSION: VERSION,
48-
SERVICE_NAMESPACE: ENVIRONMENT,
49-
}
50-
)
51-
)
56+
if os.getenv("OTEL_EXPORTER_OTLP_ENDPOINT"):
57+
OTEL_RESOURCE = get_aggregated_resources(
58+
[OTELResourceDetector(), ProcessResourceDetector()],
59+
).merge(OTEL_RESOURCE)
60+
PROVIDER = TracerProvider(resource=OTEL_RESOURCE)
5261
EXPORTER = OTLPSpanExporter()
5362
PROCESSOR = BatchSpanProcessor(EXPORTER)
5463
PROVIDER.add_span_processor(PROCESSOR)
5564
trace.set_tracer_provider(PROVIDER)
65+
setup_logging("ETOS Suite Starter", VERSION, ENVIRONMENT, OTEL_RESOURCE)
66+
else:
67+
setup_logging("ETOS Suite Starter", VERSION, ENVIRONMENT)

0 commit comments

Comments
 (0)