OpenTelemetry hook sampler
项目描述
opentelemetry-hook-sampler
基于自定义功能的opentelemetry-python
采样器。
如何安装
$ pip install opentelemetry-hook-sampler
如何使用
import opentelemetry.trace
from opentelemetry.sdk.resources import SERVICE_NAME
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry_hook_sampler import HookSampler
def sampler_hook():
"""
Sample 1 in 10 traces.
The example is static, but you can get info from any context available
in your application. E.g. http request, celery task, thread locals, etc.
"""
return 10
resource = Resource(attributes={SERVICE_NAME: "foo"})
sampler = HookSampler(sampler_hook)
provider = TracerProvider(resource=resource, sampler=sampler)
opentelemetry.trace.set_tracer_provider(provider)
Honeycomb特定
Honeycomb期望一个SampleRate
属性来标准化数据。这不是OpenTelemetry规范,但通过opentelemetry_hook_sampler.HoneycombHookSampler
得到了支持。
采样器示例
django-threadlocals
请注意,threadlocals模块与异步Django不兼容。
from threadlocals.threadlocals import get_current_request
def sampler_hook():
request = get_current_request()
# 10% /foo requests
if request.path == '/foo':
return 10
return 1
django-g
from django_g import get_current_request
def sampler_hook():
request = get_current_request()
# 10% /foo requests
if request.path == '/foo':
return 10
return 1
celery
import celery
def sampler_hook():
task_name = celery.current_app.current_worker_task.request.task
# 10% foo.bar.baz tasks
if task_name == 'foo.bar.baz':
return 10
return 1
项目详情
关闭
哈希值 对于 opentelemetry_hook_sampler-0.0.3-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eaa7e0d9fa1df3b0be231afea974e5b94f8bbb7c44913a2ab83aaa295c520940 |
|
MD5 | 533084e6a2fae1a8d1c0f1e9045b5ac3 |
|
BLAKE2b-256 | 4a4b12da2372be7c6ab775a7f5e1ac50ecc6e53af7c729a1c3e35dc6a98070b1 |