Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
ocelotl committed Jun 10, 2024
1 parent 1428e4a commit fe6eee1
Show file tree
Hide file tree
Showing 3 changed files with 235 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# kitchen-sink.yaml demonstrates all configurable surface area, including explanatory comments.
#
# It DOES NOT represent expected real world file configuration, as it makes strange file configuration
# choices in an effort to exercise the full surface area.
#
# Configuration values are set to their defaults when default values are defined.

# The file format version
file_format: "0.1"

# Configure if the SDK is disabled or not. This is not required to be provided
# to ensure the SDK isn't disabled, the default value when this is not provided
# is for the SDK to be enabled.
#
# Environment variable: OTEL_SDK_DISABLED
disabled: false

# Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
attribute_limits:
# Configure max attribute value size.
#
# Environment variable: OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT
attribute_value_length_limit: 4096
# Configure max attribute count.
#
# Environment variable: OTEL_ATTRIBUTE_COUNT_LIMIT
attribute_count_limit: 128

# Configure text map context propagators.
#
# Environment variable: OTEL_PROPAGATORS
propagator:
composite: [tracecontext, baggage, b3, b3multi, jaeger, xray, ottrace]

# Configure tracer provider.
tracer_provider:
# Configure span processors.
processors:
# Configure a batch span processor.
- batch:
# Configure delay interval (in milliseconds) between two consecutive exports.
#
# Environment variable: OTEL_BSP_SCHEDULE_DELAY
schedule_delay: 5000
# Configure maximum allowed time (in milliseconds) to export data.
#
# Environment variable: OTEL_BSP_EXPORT_TIMEOUT
export_timeout: 30000
# Configure maximum queue size.
#
# Environment variable: OTEL_BSP_MAX_QUEUE_SIZE
max_queue_size: 2048
# Configure maximum batch size.
#
# Environment variable: OTEL_BSP_MAX_EXPORT_BATCH_SIZE
max_export_batch_size: 512
# Configure exporter.
#
# Environment variable: OTEL_TRACES_EXPORTER
exporter:
# Configure exporter to be OTLP.
otlp:
# Configure protocol.
#
# Environment variable: OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_TRACES_PROTOCOL
protocol: http/protobuf
# Configure endpoint.
#
# Environment variable: OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
endpoint: http://localhost:4318
# Configure certificate.
#
# Environment variable: OTEL_EXPORTER_OTLP_CERTIFICATE, OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE
certificate: /app/cert.pem
# Configure mTLS private client key.
#
# Environment variable: OTEL_EXPORTER_OTLP_CLIENT_KEY, OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY
client_key: /app/cert.pem
# Configure mTLS client certificate.
#
# Environment variable: OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE, OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE
client_certificate: /app/cert.pem
# Configure headers.
#
# Environment variable: OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_TRACES_HEADERS
headers:
api-key: !!str 1234
# Configure compression.
#
# Environment variable: OTEL_EXPORTER_OTLP_COMPRESSION, OTEL_EXPORTER_OTLP_TRACES_COMPRESSION
compression: gzip
# Configure max time (in milliseconds) to wait for each export.
#
# Environment variable: OTEL_EXPORTER_OTLP_TIMEOUT, OTEL_EXPORTER_OTLP_TRACES_TIMEOUT
timeout: 10000
# Configure a batch span processor.
- batch:
# Configure exporter.
#
# Environment variable: OTEL_TRACES_EXPORTER
schedule_delay: 5000
exporter:
# Configure exporter to be zipkin.
zipkin:
# Configure endpoint.
#
# Environment variable: OTEL_EXPORTER_ZIPKIN_ENDPOINT
endpoint: http://localhost:9411/api/v2/spans
# Configure max time (in milliseconds) to wait for each export.
#
# Environment variable: OTEL_EXPORTER_ZIPKIN_TIMEOUT
timeout: 10000
# Configure a simple span processor.
- simple:
# Configure exporter.
exporter:
# Configure exporter to be console.
console: {}
# Configure span limits. See also attribute_limits.
limits:
# Configure max span attribute value size. Overrides attribute_limits.attribute_value_length_limit.
#
# Environment variable: OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT
attribute_value_length_limit: 4096
# Configure max span attribute count. Overrides attribute_limits.attribute_count_limit.
#
# Environment variable: OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT
attribute_count_limit: 128
# Configure max span event count.
#
# Environment variable: OTEL_SPAN_EVENT_COUNT_LIMIT
event_count_limit: 128
# Configure max span link count.
#
# Environment variable: OTEL_SPAN_LINK_COUNT_LIMIT
link_count_limit: 128
# Configure max attributes per span event.
#
# Environment variable: OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT
event_attribute_count_limit: 128
# Configure max attributes per span link.
#
# Environment variable: OTEL_LINK_ATTRIBUTE_COUNT_LIMIT
link_attribute_count_limit: 128
# Configure the sampler.
sampler:
# Configure sampler to be parent_based. Known values include: always_off, always_on, jaeger_remote, parent_based, trace_id_ratio_based.
#
# Environment variable: OTEL_TRACES_SAMPLER=parentbased_*
parent_based:
# Configure root sampler.
#
# Environment variable: OTEL_TRACES_SAMPLER=parentbased_traceidratio
root:
# Configure sampler to be trace_id_ratio_based.
trace_id_ratio_based:
# Configure trace_id_ratio.
#
# Environment variable: OTEL_TRACES_SAMPLER_ARG=traceidratio=0.0001
ratio: 0.0001
# Configure remote_parent_sampled sampler.
remote_parent_sampled:
# Configure sampler to be always_on.
always_on: {}
# Configure remote_parent_not_sampled sampler.
remote_parent_not_sampled:
# Configure sampler to be always_off.
always_off: {}
# Configure local_parent_sampled sampler.
local_parent_sampled:
# Configure sampler to be always_on.
always_on: {}
# Configure local_parent_not_sampled sampler.
local_parent_not_sampled:
parent_based:
remote_parent_not_sampled:
trace_id_ratio_based:
ratio: 0.0001

# Configure resource for all signals.
resource:
# Configure resource attributes.
#
# Environment variable: OTEL_RESOURCE_ATTRIBUTES
attributes:
# Configure `service.name` resource attribute
#
# Environment variable: OTEL_SERVICE_NAME
service.name: !!str "unknown_service"
# Configure the resource schema URL.
schema_url: https://opentelemetry.io/schemas/1.16.0
36 changes: 36 additions & 0 deletions _file_configuration/tests/test_file_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,42 @@ def test_dry_run():
)


def test_dry_run_multiple_span_processors():

file_configuration = load_file_configuration(
data_path.joinpath("file_configuration").joinpath(
"file_configuration_3.yaml"
)
)

schema_path = data_path.joinpath("schema").joinpath(
"opentelemetry_file_configuration.json"
)

resolved_schema = resolve_schema(schema_path)

try:
validate_file_configuration(resolved_schema, file_configuration)
except Exception as error:
fail(f"Unexpected exception raised: {error}")

processed_schema = process_schema(resolved_schema)

set_resource(
create_object(file_configuration, processed_schema, "resource")
)

print()
print(
create_object(
file_configuration,
processed_schema,
"tracer_provider",
dry_run=True,
)
)


def test_plugin():

file_configuration = load_file_configuration(
Expand Down
10 changes: 8 additions & 2 deletions opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1195,6 +1195,7 @@ def __init__(
self._resource = resource
if not sampler:
sampler = sampling._get_from_env_or_default()
self._shutdown_on_exit = self._shutdown_on_exit
self.sampler = sampler
self._span_limits = span_limits or SpanLimits()
disabled = environ.get(OTEL_SDK_DISABLED, "")
Expand All @@ -1205,10 +1206,15 @@ def __init__(
self._atexit_handler = atexit.register(self.shutdown)

def __repr__(self) -> str:
from ipdb import set_trace
set_trace()
return (
f"{self.__class__.__name__}("
f"{repr(self.sampler)},"
f"{repr(self._resource)},"
f"sampler={repr(self.sampler)},"
f"resource={repr(self._resource)},"
f"shutdown_on_exit={repr(self._shutdown_on_exit)},"
f"active_span_processor={repr(self._active_span_processor)},"
f"id_generator={repr(self._active_span_processor)},"
")"
)

Expand Down

0 comments on commit fe6eee1

Please sign in to comment.