otel
Collector as a service for local development and testing, with acomponent/pipeline builder API for composing receivers, processors,
and exporters without writing YAML by hand.
Installation
dagger install github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282eEntrypoint
Return Type
Otel Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
func (m *MyModule) Example() *dagger.Otel {
return dag.
Otel()
}@function
def example() -> dagger.Otel:
return (
dag.otel()
)@func()
example(): Otel {
return dag
.otel()
}Types
Otel 🔗
batchProcessor() 🔗
BatchProcessor builds a batch processor with collector defaults.
Return Type
Processor !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
batch-processor --name stringfunc (m *MyModule) Example(name string) *dagger.OtelProcessor {
return dag.
Otel().
Batchprocessor(name)
}@function
def example(name: str) -> dagger.OtelProcessor:
return (
dag.otel()
.batchprocessor(name)
)@func()
example(name: string): OtelProcessor {
return dag
.otel()
.batchProcessor(name)
}contrib() 🔗
Contrib returns a ContribCollector backed by the otel/opentelemetry-collector-contrib image. See Core.
Return Type
ContribCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| registry | String ! | "docker.io" | No description provided |
| tag | String ! | "0.130.1" | No description provided |
| configFile | File | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag stringfunc (m *MyModule) Example(registry string, tag string) *dagger.OtelContribCollector {
return dag.
Otel().
Contrib(registry, tag)
}@function
def example(registry: str, tag: str) -> dagger.OtelContribCollector:
return (
dag.otel()
.contrib(registry, tag)
)@func()
example(registry: string, tag: string): OtelContribCollector {
return dag
.otel()
.contrib(registry, tag)
}core() 🔗
Core returns a CoreCollector backed by the otel/opentelemetry-collector image at /:. configFile, when supplied, fully replaces the rendered pipeline YAML; the image path is fixed.
Return Type
CoreCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| registry | String ! | "docker.io" | No description provided |
| tag | String ! | "0.130.1" | No description provided |
| configFile | File | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag stringfunc (m *MyModule) Example(registry string, tag string) *dagger.OtelCoreCollector {
return dag.
Otel().
Core(registry, tag)
}@function
def example(registry: str, tag: str) -> dagger.OtelCoreCollector:
return (
dag.otel()
.core(registry, tag)
)@func()
example(registry: string, tag: string): OtelCoreCollector {
return dag
.otel()
.core(registry, tag)
}customExporter() 🔗
CustomExporter — see CustomReceiver.
Return Type
Exporter !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| kind | String ! | - | No description provided |
| name | String ! | - | No description provided |
| yamlBody | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
custom-exporter --kind string --name string --yaml-body stringfunc (m *MyModule) Example(kind string, name string, yamlBody string) *dagger.OtelExporter {
return dag.
Otel().
Customexporter(kind, name, yamlBody)
}@function
def example(kind: str, name: str, yamlbody: str) -> dagger.OtelExporter:
return (
dag.otel()
.customexporter(kind, name, yamlbody)
)@func()
example(kind: string, name: string, yamlBody: string): OtelExporter {
return dag
.otel()
.customExporter(kind, name, yamlBody)
}customProcessor() 🔗
CustomProcessor — see CustomReceiver.
Return Type
Processor !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| kind | String ! | - | No description provided |
| name | String ! | - | No description provided |
| yamlBody | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
custom-processor --kind string --name string --yaml-body stringfunc (m *MyModule) Example(kind string, name string, yamlBody string) *dagger.OtelProcessor {
return dag.
Otel().
Customprocessor(kind, name, yamlBody)
}@function
def example(kind: str, name: str, yamlbody: str) -> dagger.OtelProcessor:
return (
dag.otel()
.customprocessor(kind, name, yamlbody)
)@func()
example(kind: string, name: string, yamlBody: string): OtelProcessor {
return dag
.otel()
.customProcessor(kind, name, yamlBody)
}customReceiver() 🔗
CustomReceiver builds a receiver of arbitrary kind whose body is the
caller-supplied YAML, spliced verbatim under receivers.<kind>/<name>.
Return Type
Receiver !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| kind | String ! | - | No description provided |
| name | String ! | - | No description provided |
| yamlBody | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
custom-receiver --kind string --name string --yaml-body stringfunc (m *MyModule) Example(kind string, name string, yamlBody string) *dagger.OtelReceiver {
return dag.
Otel().
Customreceiver(kind, name, yamlBody)
}@function
def example(kind: str, name: str, yamlbody: str) -> dagger.OtelReceiver:
return (
dag.otel()
.customreceiver(kind, name, yamlbody)
)@func()
example(kind: string, name: string, yamlBody: string): OtelReceiver {
return dag
.otel()
.customReceiver(kind, name, yamlBody)
}debugExporter() 🔗
DebugExporter builds the stdout debug exporter at verbosity=detailed.
Return Type
Exporter !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
debug-exporter --name stringfunc (m *MyModule) Example(name string) *dagger.OtelExporter {
return dag.
Otel().
Debugexporter(name)
}@function
def example(name: str) -> dagger.OtelExporter:
return (
dag.otel()
.debugexporter(name)
)@func()
example(name: string): OtelExporter {
return dag
.otel()
.debugExporter(name)
}debugPipeline() 🔗
DebugPipeline is a pre-wired smoke-test pipeline of
otlp receiver → batch processor → debug exporter for signal.
Component names are fixed (otlp/debug, batch/debug,
debug/debug); the pipeline name is debug.
Return Type
Pipeline !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| signal | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
debug-pipeline --signal stringfunc (m *MyModule) Example(signal string) *dagger.OtelPipeline {
return dag.
Otel().
Debugpipeline(signal)
}@function
def example(signal: str) -> dagger.OtelPipeline:
return (
dag.otel()
.debugpipeline(signal)
)@func()
example(signal: string): OtelPipeline {
return dag
.otel()
.debugPipeline(signal)
}memoryLimiterProcessor() 🔗
MemoryLimiterProcessor builds a memory_limiter processor with conservative defaults (check_interval: 1s, limit_mib: 512). Callers needing different thresholds should reach for CustomProcessor.
Return Type
Processor !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
memory-limiter-processor --name stringfunc (m *MyModule) Example(name string) *dagger.OtelProcessor {
return dag.
Otel().
Memorylimiterprocessor(name)
}@function
def example(name: str) -> dagger.OtelProcessor:
return (
dag.otel()
.memorylimiterprocessor(name)
)@func()
example(name: string): OtelProcessor {
return dag
.otel()
.memoryLimiterProcessor(name)
}otlpExporter() 🔗
OtlpExporter builds an OTLP gRPC exporter pointing at endpoint (host:port, no scheme). Plaintext only — TLS is follow-up #24.
Return Type
Exporter !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| endpoint | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-exporter --name string --endpoint stringfunc (m *MyModule) Example(name string, endpoint string) *dagger.OtelExporter {
return dag.
Otel().
Otlpexporter(name, endpoint)
}@function
def example(name: str, endpoint: str) -> dagger.OtelExporter:
return (
dag.otel()
.otlpexporter(name, endpoint)
)@func()
example(name: string, endpoint: string): OtelExporter {
return dag
.otel()
.otlpExporter(name, endpoint)
}otlpHttpExporter() 🔗
OtlpHttpExporter builds an OTLP/HTTP exporter pointing at endpoint (URL with scheme, e.g. http://loki:3100/otlp).
Return Type
Exporter !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
| endpoint | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-http-exporter --name string --endpoint stringfunc (m *MyModule) Example(name string, endpoint string) *dagger.OtelExporter {
return dag.
Otel().
Otlphttpexporter(name, endpoint)
}@function
def example(name: str, endpoint: str) -> dagger.OtelExporter:
return (
dag.otel()
.otlphttpexporter(name, endpoint)
)@func()
example(name: string, endpoint: string): OtelExporter {
return dag
.otel()
.otlpHttpExporter(name, endpoint)
}otlpReceiver() 🔗
OtlpReceiver builds the standard OTLP receiver listening on gRPC :4317 and HTTP :4318.
Return Type
Receiver !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-receiver --name stringfunc (m *MyModule) Example(name string) *dagger.OtelReceiver {
return dag.
Otel().
Otlpreceiver(name)
}@function
def example(name: str) -> dagger.OtelReceiver:
return (
dag.otel()
.otlpreceiver(name)
)@func()
example(name: string): OtelReceiver {
return dag
.otel()
.otlpReceiver(name)
}pipeline() 🔗
Pipeline builds an empty pipeline for signal (logs|traces|metrics) keyed at / in the rendered config.
Return Type
Pipeline !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| signal | String ! | - | No description provided |
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name stringfunc (m *MyModule) Example(signal string, name string) *dagger.OtelPipeline {
return dag.
Otel().
Pipeline(signal, name)
}@function
def example(signal: str, name: str) -> dagger.OtelPipeline:
return (
dag.otel()
.pipeline(signal, name)
)@func()
example(signal: string, name: string): OtelPipeline {
return dag
.otel()
.pipeline(signal, name)
}resourceProcessor() 🔗
ResourceProcessor builds a no-op resource processor (empty attributes list). Callers needing actual attribute upserts should reach for CustomProcessor.
Return Type
Processor !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| name | String ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
resource-processor --name stringfunc (m *MyModule) Example(name string) *dagger.OtelProcessor {
return dag.
Otel().
Resourceprocessor(name)
}@function
def example(name: str) -> dagger.OtelProcessor:
return (
dag.otel()
.resourceprocessor(name)
)@func()
example(name: string): OtelProcessor {
return dag
.otel()
.resourceProcessor(name)
}Processor 🔗
Processor is a single OpenTelemetry Collector processor component.
kind() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
resource-processor --name string \
kindfunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Resourceprocessor(name).
Kind(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.resourceprocessor(name)
.kind()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.resourceProcessor(name)
.kind()
}name() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
resource-processor --name string \
namefunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Resourceprocessor(name).
Name(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.resourceprocessor(name)
.name()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.resourceProcessor(name)
.name()
}body() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
resource-processor --name string \
bodyfunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Resourceprocessor(name).
Body(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.resourceprocessor(name)
.body()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.resourceProcessor(name)
.body()
}ContribCollector 🔗
ContribCollector wraps the otel/opentelemetry-collector-contrib image. Method set is identical to CoreCollector; only the image path differs, so the rendering and service helpers are shared.
registry() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
registryfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Contrib(registry, tag).
Registry(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.contrib(registry, tag)
.registry()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.contrib(registry, tag)
.registry()
}tag() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
tagfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Contrib(registry, tag).
Tag(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.contrib(registry, tag)
.tag()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.contrib(registry, tag)
.tag()
}override() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
overridefunc (m *MyModule) Example(registry string, tag string) *dagger.File {
return dag.
Otel().
Contrib(registry, tag).
Override()
}@function
def example(registry: str, tag: str) -> dagger.File:
return (
dag.otel()
.contrib(registry, tag)
.override()
)@func()
example(registry: string, tag: string): File {
return dag
.otel()
.contrib(registry, tag)
.override()
}pipelines() 🔗
Return Type
[Pipeline ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
pipelinesfunc (m *MyModule) Example(registry string, tag string) []*dagger.OtelPipeline {
return dag.
Otel().
Contrib(registry, tag).
Pipelines()
}@function
def example(registry: str, tag: str) -> List[dagger.OtelPipeline]:
return (
dag.otel()
.contrib(registry, tag)
.pipelines()
)@func()
example(registry: string, tag: string): OtelPipeline[] {
return dag
.otel()
.contrib(registry, tag)
.pipelines()
}bindingHosts() 🔗
Return Type
[String ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
binding-hostsfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) []string {
return dag.
Otel().
Contrib(registry, tag).
Bindinghosts(ctx)
}@function
async def example(registry: str, tag: str) -> List[str]:
return await (
dag.otel()
.contrib(registry, tag)
.bindinghosts()
)@func()
async example(registry: string, tag: string): Promise<string[]> {
return dag
.otel()
.contrib(registry, tag)
.bindingHosts()
}bindingSvcs() 🔗
Return Type
[Service ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
binding-svcsfunc (m *MyModule) Example(registry string, tag string) []*dagger.Service {
return dag.
Otel().
Contrib(registry, tag).
Bindingsvcs()
}@function
def example(registry: str, tag: str) -> List[dagger.Service]:
return (
dag.otel()
.contrib(registry, tag)
.bindingsvcs()
)@func()
example(registry: string, tag: string): Service[] {
return dag
.otel()
.contrib(registry, tag)
.bindingSvcs()
}configFile() 🔗
ConfigFile — see CoreCollector.ConfigFile.
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
config-filefunc (m *MyModule) Example(registry string, tag string) *dagger.File {
return dag.
Otel().
Contrib(registry, tag).
Configfile()
}@function
def example(registry: str, tag: str) -> dagger.File:
return (
dag.otel()
.contrib(registry, tag)
.configfile()
)@func()
example(registry: string, tag: string): File {
return dag
.otel()
.contrib(registry, tag)
.configFile()
}otlpGrpcEndpoint() 🔗
OtlpGrpcEndpoint — see CoreCollector.OtlpGrpcEndpoint.
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
otlp-grpc-endpointfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Contrib(registry, tag).
Otlpgrpcendpoint(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.contrib(registry, tag)
.otlpgrpcendpoint()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.contrib(registry, tag)
.otlpGrpcEndpoint()
}otlpHttpEndpoint() 🔗
OtlpHttpEndpoint — see CoreCollector.OtlpHttpEndpoint.
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
otlp-http-endpointfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Contrib(registry, tag).
Otlphttpendpoint(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.contrib(registry, tag)
.otlphttpendpoint()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.contrib(registry, tag)
.otlpHttpEndpoint()
}service() 🔗
Service — see CoreCollector.Service.
Return Type
Service ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
servicefunc (m *MyModule) Example(registry string, tag string) *dagger.Service {
return dag.
Otel().
Contrib(registry, tag).
Service()
}@function
def example(registry: str, tag: str) -> dagger.Service:
return (
dag.otel()
.contrib(registry, tag)
.service()
)@func()
example(registry: string, tag: string): Service {
return dag
.otel()
.contrib(registry, tag)
.service()
}withConfigFile() 🔗
WithConfigFile — see CoreCollector.WithConfigFile.
Return Type
ContribCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| f | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
with-config-file --f file:pathfunc (m *MyModule) Example(registry string, tag string, f *dagger.File) *dagger.OtelContribCollector {
return dag.
Otel().
Contrib(registry, tag).
Withconfigfile(f)
}@function
def example(registry: str, tag: str, f: dagger.File) -> dagger.OtelContribCollector:
return (
dag.otel()
.contrib(registry, tag)
.withconfigfile(f)
)@func()
example(registry: string, tag: string, f: File): OtelContribCollector {
return dag
.otel()
.contrib(registry, tag)
.withConfigFile(f)
}withPipeline() 🔗
WithPipeline — see CoreCollector.WithPipeline.
Return Type
ContribCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| p | Pipeline ! | - | No description provided |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(registry string, tag string, p *dagger.OtelPipeline) *dagger.OtelContribCollector {
return dag.
Otel().
Contrib(registry, tag).
Withpipeline(p)
}@function
def example(registry: str, tag: str, p: dagger.OtelPipeline) -> dagger.OtelContribCollector:
return (
dag.otel()
.contrib(registry, tag)
.withpipeline(p)
)@func()
example(registry: string, tag: string, p: OtelPipeline): OtelContribCollector {
return dag
.otel()
.contrib(registry, tag)
.withPipeline(p)
}withServiceBinding() 🔗
WithServiceBinding — see CoreCollector.WithServiceBinding.
Return Type
ContribCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| host | String ! | - | No description provided |
| svc | Service ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
contrib --registry string --tag string \
with-service-binding --host string --svc PROTOCOL://HOST:PORTfunc (m *MyModule) Example(registry string, tag string, host string, svc *dagger.Service) *dagger.OtelContribCollector {
return dag.
Otel().
Contrib(registry, tag).
Withservicebinding(host, svc)
}@function
def example(registry: str, tag: str, host: str, svc: dagger.Service) -> dagger.OtelContribCollector:
return (
dag.otel()
.contrib(registry, tag)
.withservicebinding(host, svc)
)@func()
example(registry: string, tag: string, host: string, svc: Service): OtelContribCollector {
return dag
.otel()
.contrib(registry, tag)
.withServiceBinding(host, svc)
}CoreCollector 🔗
CoreCollector wraps the otel/opentelemetry-collector image. Its public surface is identical to ContribCollector — both share the rendering and service-construction helpers below; only the image path differs.
registry() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
registryfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Core(registry, tag).
Registry(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.core(registry, tag)
.registry()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.core(registry, tag)
.registry()
}tag() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
tagfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Core(registry, tag).
Tag(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.core(registry, tag)
.tag()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.core(registry, tag)
.tag()
}override() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
overridefunc (m *MyModule) Example(registry string, tag string) *dagger.File {
return dag.
Otel().
Core(registry, tag).
Override()
}@function
def example(registry: str, tag: str) -> dagger.File:
return (
dag.otel()
.core(registry, tag)
.override()
)@func()
example(registry: string, tag: string): File {
return dag
.otel()
.core(registry, tag)
.override()
}pipelines() 🔗
Return Type
[Pipeline ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
pipelinesfunc (m *MyModule) Example(registry string, tag string) []*dagger.OtelPipeline {
return dag.
Otel().
Core(registry, tag).
Pipelines()
}@function
def example(registry: str, tag: str) -> List[dagger.OtelPipeline]:
return (
dag.otel()
.core(registry, tag)
.pipelines()
)@func()
example(registry: string, tag: string): OtelPipeline[] {
return dag
.otel()
.core(registry, tag)
.pipelines()
}bindingHosts() 🔗
Return Type
[String ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
binding-hostsfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) []string {
return dag.
Otel().
Core(registry, tag).
Bindinghosts(ctx)
}@function
async def example(registry: str, tag: str) -> List[str]:
return await (
dag.otel()
.core(registry, tag)
.bindinghosts()
)@func()
async example(registry: string, tag: string): Promise<string[]> {
return dag
.otel()
.core(registry, tag)
.bindingHosts()
}bindingSvcs() 🔗
Return Type
[Service ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
binding-svcsfunc (m *MyModule) Example(registry string, tag string) []*dagger.Service {
return dag.
Otel().
Core(registry, tag).
Bindingsvcs()
}@function
def example(registry: str, tag: str) -> List[dagger.Service]:
return (
dag.otel()
.core(registry, tag)
.bindingsvcs()
)@func()
example(registry: string, tag: string): Service[] {
return dag
.otel()
.core(registry, tag)
.bindingSvcs()
}configFile() 🔗
ConfigFile returns the file that will be mounted as the collector’s –config: either the caller-supplied override or the pipeline-rendered YAML. Inspecting it does not launch the service.
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
config-filefunc (m *MyModule) Example(registry string, tag string) *dagger.File {
return dag.
Otel().
Core(registry, tag).
Configfile()
}@function
def example(registry: str, tag: str) -> dagger.File:
return (
dag.otel()
.core(registry, tag)
.configfile()
)@func()
example(registry: string, tag: string): File {
return dag
.otel()
.core(registry, tag)
.configFile()
}otlpGrpcEndpoint() 🔗
OtlpGrpcEndpoint returns the host:port of the running collector’s OTLP/gRPC listener (no scheme).
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
otlp-grpc-endpointfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Core(registry, tag).
Otlpgrpcendpoint(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.core(registry, tag)
.otlpgrpcendpoint()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.core(registry, tag)
.otlpGrpcEndpoint()
}otlpHttpEndpoint() 🔗
OtlpHttpEndpoint returns http://:4318 for the running collector’s OTLP/HTTP listener.
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
otlp-http-endpointfunc (m *MyModule) Example(ctx context.Context, registry string, tag string) string {
return dag.
Otel().
Core(registry, tag).
Otlphttpendpoint(ctx)
}@function
async def example(registry: str, tag: str) -> str:
return await (
dag.otel()
.core(registry, tag)
.otlphttpendpoint()
)@func()
async example(registry: string, tag: string): Promise<string> {
return dag
.otel()
.core(registry, tag)
.otlpHttpEndpoint()
}service() 🔗
Service returns the running collector. Listens on :4317 (OTLP gRPC) and :4318 (OTLP HTTP). Mounts the resolved config (override or rendered) when one exists; otherwise launches with no –config flag, matching the collector binary’s behavior of refusing to start.
Return Type
Service ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
servicefunc (m *MyModule) Example(registry string, tag string) *dagger.Service {
return dag.
Otel().
Core(registry, tag).
Service()
}@function
def example(registry: str, tag: str) -> dagger.Service:
return (
dag.otel()
.core(registry, tag)
.service()
)@func()
example(registry: string, tag: string): Service {
return dag
.otel()
.core(registry, tag)
.service()
}withConfigFile() 🔗
WithConfigFile fully replaces the rendered pipeline YAML with the supplied file. Pipelines added via WithPipeline are ignored when an override is set.
Return Type
CoreCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| f | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
with-config-file --f file:pathfunc (m *MyModule) Example(registry string, tag string, f *dagger.File) *dagger.OtelCoreCollector {
return dag.
Otel().
Core(registry, tag).
Withconfigfile(f)
}@function
def example(registry: str, tag: str, f: dagger.File) -> dagger.OtelCoreCollector:
return (
dag.otel()
.core(registry, tag)
.withconfigfile(f)
)@func()
example(registry: string, tag: string, f: File): OtelCoreCollector {
return dag
.otel()
.core(registry, tag)
.withConfigFile(f)
}withPipeline() 🔗
WithPipeline appends a pipeline to the collector. The collector dedupes shared components into one top-level entry per kind/name at YAML-render time.
Return Type
CoreCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| p | Pipeline ! | - | No description provided |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(registry string, tag string, p *dagger.OtelPipeline) *dagger.OtelCoreCollector {
return dag.
Otel().
Core(registry, tag).
Withpipeline(p)
}@function
def example(registry: str, tag: str, p: dagger.OtelPipeline) -> dagger.OtelCoreCollector:
return (
dag.otel()
.core(registry, tag)
.withpipeline(p)
)@func()
example(registry: string, tag: string, p: OtelPipeline): OtelCoreCollector {
return dag
.otel()
.core(registry, tag)
.withPipeline(p)
}withServiceBinding() 🔗
WithServiceBinding binds a backend service into the collector’s network so exporter endpoints can reach it by hostname. Repeated calls accumulate.
Return Type
CoreCollector !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| host | String ! | - | No description provided |
| svc | Service ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
core --registry string --tag string \
with-service-binding --host string --svc PROTOCOL://HOST:PORTfunc (m *MyModule) Example(registry string, tag string, host string, svc *dagger.Service) *dagger.OtelCoreCollector {
return dag.
Otel().
Core(registry, tag).
Withservicebinding(host, svc)
}@function
def example(registry: str, tag: str, host: str, svc: dagger.Service) -> dagger.OtelCoreCollector:
return (
dag.otel()
.core(registry, tag)
.withservicebinding(host, svc)
)@func()
example(registry: string, tag: string, host: string, svc: Service): OtelCoreCollector {
return dag
.otel()
.core(registry, tag)
.withServiceBinding(host, svc)
}Exporter 🔗
Exporter is a single OpenTelemetry Collector exporter component.
kind() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-http-exporter --name string --endpoint string \
kindfunc (m *MyModule) Example(ctx context.Context, name string, endpoint string) string {
return dag.
Otel().
Otlphttpexporter(name, endpoint).
Kind(ctx)
}@function
async def example(name: str, endpoint: str) -> str:
return await (
dag.otel()
.otlphttpexporter(name, endpoint)
.kind()
)@func()
async example(name: string, endpoint: string): Promise<string> {
return dag
.otel()
.otlpHttpExporter(name, endpoint)
.kind()
}name() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-http-exporter --name string --endpoint string \
namefunc (m *MyModule) Example(ctx context.Context, name string, endpoint string) string {
return dag.
Otel().
Otlphttpexporter(name, endpoint).
Name(ctx)
}@function
async def example(name: str, endpoint: str) -> str:
return await (
dag.otel()
.otlphttpexporter(name, endpoint)
.name()
)@func()
async example(name: string, endpoint: string): Promise<string> {
return dag
.otel()
.otlpHttpExporter(name, endpoint)
.name()
}body() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-http-exporter --name string --endpoint string \
bodyfunc (m *MyModule) Example(ctx context.Context, name string, endpoint string) string {
return dag.
Otel().
Otlphttpexporter(name, endpoint).
Body(ctx)
}@function
async def example(name: str, endpoint: str) -> str:
return await (
dag.otel()
.otlphttpexporter(name, endpoint)
.body()
)@func()
async example(name: string, endpoint: string): Promise<string> {
return dag
.otel()
.otlpHttpExporter(name, endpoint)
.body()
}Receiver 🔗
Receiver is a single OpenTelemetry Collector receiver component.
Body is the YAML body for this component, spliced under
receivers.<kind>/<name> at render time.
kind() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-receiver --name string \
kindfunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Otlpreceiver(name).
Kind(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.otlpreceiver(name)
.kind()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.otlpReceiver(name)
.kind()
}name() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-receiver --name string \
namefunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Otlpreceiver(name).
Name(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.otlpreceiver(name)
.name()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.otlpReceiver(name)
.name()
}body() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
otlp-receiver --name string \
bodyfunc (m *MyModule) Example(ctx context.Context, name string) string {
return dag.
Otel().
Otlpreceiver(name).
Body(ctx)
}@function
async def example(name: str) -> str:
return await (
dag.otel()
.otlpreceiver(name)
.body()
)@func()
async example(name: string): Promise<string> {
return dag
.otel()
.otlpReceiver(name)
.body()
}Pipeline 🔗
Pipeline is a single OpenTelemetry Collector pipeline binding a signal kind to an ordered set of receivers, processors, and exporters. Components are held by reference; the collector deduplicates shared components into one top-level entry per kind/name when the YAML is rendered.
signal() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name string \
signalfunc (m *MyModule) Example(ctx context.Context, signal string, name string) string {
return dag.
Otel().
Pipeline(signal, name).
Signal(ctx)
}@function
async def example(signal: str, name: str) -> str:
return await (
dag.otel()
.pipeline(signal, name)
.signal()
)@func()
async example(signal: string, name: string): Promise<string> {
return dag
.otel()
.pipeline(signal, name)
.signal()
}name() 🔗
Return Type
String ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name string \
namefunc (m *MyModule) Example(ctx context.Context, signal string, name string) string {
return dag.
Otel().
Pipeline(signal, name).
Name(ctx)
}@function
async def example(signal: str, name: str) -> str:
return await (
dag.otel()
.pipeline(signal, name)
.name()
)@func()
async example(signal: string, name: string): Promise<string> {
return dag
.otel()
.pipeline(signal, name)
.name()
}receivers() 🔗
Return Type
[Receiver ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name string \
receiversfunc (m *MyModule) Example(signal string, name string) []*dagger.OtelReceiver {
return dag.
Otel().
Pipeline(signal, name).
Receivers()
}@function
def example(signal: str, name: str) -> List[dagger.OtelReceiver]:
return (
dag.otel()
.pipeline(signal, name)
.receivers()
)@func()
example(signal: string, name: string): OtelReceiver[] {
return dag
.otel()
.pipeline(signal, name)
.receivers()
}processors() 🔗
Return Type
[Processor ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name string \
processorsfunc (m *MyModule) Example(signal string, name string) []*dagger.OtelProcessor {
return dag.
Otel().
Pipeline(signal, name).
Processors()
}@function
def example(signal: str, name: str) -> List[dagger.OtelProcessor]:
return (
dag.otel()
.pipeline(signal, name)
.processors()
)@func()
example(signal: string, name: string): OtelProcessor[] {
return dag
.otel()
.pipeline(signal, name)
.processors()
}exporters() 🔗
Return Type
[Exporter ! ] ! Example
dagger -m github.com/z5labs/devex/daggerverse/otel@93616a322270189d6f9aa8985071fa6dd1f9282e call \
pipeline --signal string --name string \
exportersfunc (m *MyModule) Example(signal string, name string) []*dagger.OtelExporter {
return dag.
Otel().
Pipeline(signal, name).
Exporters()
}@function
def example(signal: str, name: str) -> List[dagger.OtelExporter]:
return (
dag.otel()
.pipeline(signal, name)
.exporters()
)@func()
example(signal: string, name: string): OtelExporter[] {
return dag
.otel()
.pipeline(signal, name)
.exporters()
}withExporter() 🔗
WithExporter — see WithReceiver.
Return Type
Pipeline !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| exp | Exporter ! | - | No description provided |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(signal string, name string, exp *dagger.OtelExporter) *dagger.OtelPipeline {
return dag.
Otel().
Pipeline(signal, name).
Withexporter(exp)
}@function
def example(signal: str, name: str, exp: dagger.OtelExporter) -> dagger.OtelPipeline:
return (
dag.otel()
.pipeline(signal, name)
.withexporter(exp)
)@func()
example(signal: string, name: string, exp: OtelExporter): OtelPipeline {
return dag
.otel()
.pipeline(signal, name)
.withExporter(exp)
}withProcessor() 🔗
WithProcessor — see WithReceiver.
Return Type
Pipeline !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| proc | Processor ! | - | No description provided |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(signal string, name string, proc *dagger.OtelProcessor) *dagger.OtelPipeline {
return dag.
Otel().
Pipeline(signal, name).
Withprocessor(proc)
}@function
def example(signal: str, name: str, proc: dagger.OtelProcessor) -> dagger.OtelPipeline:
return (
dag.otel()
.pipeline(signal, name)
.withprocessor(proc)
)@func()
example(signal: string, name: string, proc: OtelProcessor): OtelPipeline {
return dag
.otel()
.pipeline(signal, name)
.withProcessor(proc)
}withReceiver() 🔗
WithReceiver appends a receiver to the pipeline and returns a new pipeline; the receiver is held by reference so it can be deduped across pipelines at render time.
Return Type
Pipeline !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| recv | Receiver ! | - | No description provided |
Example
echo 'Custom types are not supported in shell examples'func (m *MyModule) Example(signal string, name string, recv *dagger.OtelReceiver) *dagger.OtelPipeline {
return dag.
Otel().
Pipeline(signal, name).
Withreceiver(recv)
}@function
def example(signal: str, name: str, recv: dagger.OtelReceiver) -> dagger.OtelPipeline:
return (
dag.otel()
.pipeline(signal, name)
.withreceiver(recv)
)@func()
example(signal: string, name: string, recv: OtelReceiver): OtelPipeline {
return dag
.otel()
.pipeline(signal, name)
.withReceiver(recv)
}