我在一家初创公司工作,我们最近迁移了我们的工作负载以使用Kubernetes,特别是我们在EKS(AWS)的集群内运行。
我目前正在尝试在我们的集群上实现一个可观察性堆栈。我在一个单独的EC2示例上运行Signoz(用于测试,并且因为我们的集群使用的是其Helm Chart不支持的小型机器)。
在集群中,我正在运行Open Telemetry Operator,并设法在部署模式下部署了一个Collector,并验证了它能够连接到signoz示例。然而,当我尝试自动检测我的应用程序时,如果不使用Sidecar,我就无法做到这一点。
上面的元素的清单文件如下。
apiVersion: v1
kind: Namespace
metadata:
name: opentelemetry
labels:
name: opentelemetry
---
apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
name: otel-collector
namespace: opentelemetry
spec:
config: |
receivers:
otlp:
protocols:
grpc:
http:
processors:
memory_limiter:
check_interval: 1s
limit_percentage: 75
spike_limit_percentage: 15
batch:
send_batch_size: 10000
timeout: 10s
exporters:
otlp:
endpoint: obs.stg.company.domain:4317
tls:
insecure: true
logging:
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlp, logging]
metrics:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlp, logging]
logs:
receivers: [otlp]
processors: []
exporters: [otlp, logging]
---
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
name: my-instrumentation
namespace: opentelemetry
spec:
exporter:
endpoint: http://otel-collector-collector.opentelemetry.svc.cluster.local:4317
propagators:
- tracecontext
- baggage
- b3
sampler:
type: parentbased_traceidratio
argument: "0.25"
dotnet:
nodejs:
字符串
当我将注解instrumentation.opentelemetry.io/inject-dotnet=opentelemetry/auto-instrumentation
应用于应用程序的部署,甚至应用于命名空间,并删除pod(因此它被重新创建)时,我可以看到用于dotnet自动检测的init容器运行没有问题,但是我没有得到任何跟踪、度量或日志,无论是在Collector上还是Signoz中。
如果我在sidecar模式下创建另一个收集器,如下面的,将检测指向这个收集器,并将注解sidecar.opentelemetry.io/inject=sidecar
应用到命名空间,一切都可以正常工作。
apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
name: sidecar
namespace: application
spec:
mode: sidecar
config: |
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
exporters:
logging:
otlp:
endpoint: "http://otel-collector-collector.opentelemetry.svc.cluster.local:4317"
tls:
insecure: true
service:
telemetry:
logs:
level: "debug"
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [logging, otlp]
型
我之所以不使用sidecar来实现,是因为,正如我之前所说的,我们的集群很小,希望将开销保持在最低限度。
因此,我想首先了解我是否应该担心侧车,如果它们的开销与不使用它们有明显的不同。
其次,我想了解我的配置出了什么问题,因为我相信我遵循了Signoz文档中的所有说明。
谢谢你们能提供的任何帮助。
1条答案
按热度按时间ztyzrc3y1#
您是否尝试使用端口:4318?
http://otel-collector-collector.opentelemetry.svc.cluster.local:4318