展示HN:开发者友好的原生OTel:仅限开源的有状态、实时可观测性
嗨,HN,
我们是 MyDecisive.ai 的团队,今天我们向开发者展示 Octant —— 为您的 OpenTelemetry 提供点对点控制和可视化。
您可能已经感受到“可观察性税”的痛苦,尤其是当您管理 K8S 集群时。现代标准是使用 OpenTelemetry 对所有内容进行监控,但将所有这些丰富的 OTLP 日志、指标和追踪信息直接传输到 SaaS 供应商(如 Datadog、Splunk、Honeycomb)会迅速变得昂贵。您最终需要为嘈杂、低价值的数据支付巨额的摄取和存储费用,仅仅是为了在出现故障时能够进行搜索。使用 Octant,您可以在几分钟内启动并运行 OTel。
我们构建 Octant 是为了颠覆这一模式。Octant 不再盲目地将所有遥测数据发送到集群外,而是配置并帮助管理 OTEL 集群。它为管理 K8s 对象提供了可视化界面,更重要的是,它充当 OTLP 网关,在数据离开您的 VPC 之前对其进行源头过滤。
由于它原生支持 OpenTelemetry,您可以直接将现有的 OTel SDK 或采集器指向它,而无需修改应用程序代码。以下是它在后台的工作原理:
- OTel 原生追踪和日志采样:它使得摄取 OTLP 流量变得简单,并实时检查网络上的日志和追踪信息。通过在确定保留哪些信息之前等待追踪的完整上下文,它兑现了编织的承诺,保留 100% 的可操作信号(如错误和高延迟的跨度),但在数据到达您的 SaaS 账单之前就丢弃了无用信息。
- 实时状态警报:Octant 可以在数据被批处理、发送和由外部提供商索引之前,实时处理遥测流。这缩短了检测间隔,并减少了对 SaaS 供应商的需求。
- 网络上个人信息去标识化:它可以实时检测并剔除日志和追踪中的敏感信息,确保在数据通过互联网传输之前去除“后摄取”清理成本和合规风险。
- K8s 上下文注入:由于它与您的集群深度集成,它可以将您的 OTel 流直接映射到 K8s 资源(部署、Pod、CRD)中,提供统一的用户界面。
该 API 是用 Go 构建的([github.com/mydecisive/octant](https://github.com/mydecisive/octant)),整个堆栈可以通过我们的 Helm 图表直接部署到您的集群中。
我们希望您能在开发集群上启动它并进行深入探索。我们最近合并了来自我们第一位社区贡献者的 PR,这对我们来说是一个巨大的里程碑!我们希望保持这种势头。如果您对 K8s 可观察性和自主性、OpenTelemetry 管道或 Go/React 感兴趣,我们标记了一些“适合新手的问题”,非常欢迎您加入这个项目。
GitHub: [https://github.com/MyDecisive/octant](https://github.com/MyDecisive/octant)
网站: [https://www.mydecisive.ai/](https://www.mydecisive.ai/)
今天我会在这个讨论串中待着,乐意回答任何问题或深入探讨架构!
查看原文
Hi HN,<p>We’re the team at MyDecisive.ai, and today we’re giving developers a peek at Octant — point-and-click control and visibility for your OpenTelemetry.<p>You've likely felt the pain of the "observability tax," especially if you manage K8S clusters. The modern standard is to instrument everything with OpenTelemetry, but piping all those rich OTLP logs, metrics, and traces straight to a SaaS vendor (Datadog, Splunk, Honeycomb) gets expensive fast. You end up paying massive ingestion and storage costs for noisy, low-value data just so it's searchable when something breaks. With Octant you get up and running on OTel in minutes.<p>We built Octant to flip this model. Instead of blindly shipping all telemetry off-cluster, Octant configures and helps to manage OTEL clusters. It gives you a visual interface for managing K8s objects, but importantly, it acts as an OTLP gateway that filters data at the source before it leaves your VPC.<p>Because it natively speaks OpenTelemetry, you can point your existing OTel SDKs or collectors right at it without touching your application code. Here is what it does under the hood:<p>- OTel-Native Trace & Log Sampling: It makes it easy to ingest OTLP traffic and inspects logs and traces on the wire. By waiting for the full context of a trace before determining what to keep, it delivers on the promise of braiding, retaining 100% of the actionable signals around (like errors and high-latency spans) but droppings the junk before it hits your SaaS bill.<p>- In-Flight Stateful Alerting: Instead of waiting for data to be batched, shipped, and indexed by an external provider to trigger an alert, Octant can process the telemetry streams in-flight. This shrinks the detection gap and reduces the need for SaaS vendors in the first place.
- On-the-Wire PII Redaction: It can detect and strip sensitive information from your logs and traces in real-time before they are transmitted over the internet, removing "post-ingestion" clean-up costs and compliance risks.<p>- K8s Context Injection: Because it's deeply integrated with your cluster, it maps your OTel streams directly to your K8s resources (Deployments, Pods, CRDs) in a unified UI.<p>The API is built in Go ([github.com/mydecisive/octant] and the whole stack can be deployed directly into your cluster via our Helm charts.<p>We’d love for you to spin it up on a dev cluster and tear it apart. We just recently merged a PR from our very first community contributor, which was a huge milestone for us! We want to keep that momentum going. If you're interested in hacking on K8s observability and autonomy, OpenTelemetry pipelines, or Go/React, we’ve tagged a few 'good first issues' and would be thrilled to welcome you to the project.<p>GitHub: <a href="https://github.com/MyDecisive/octant" rel="nofollow">https://github.com/MyDecisive/octant</a><p>Website: <a href="https://www.mydecisive.ai/" rel="nofollow">https://www.mydecisive.ai/</a><p>I'll be hanging out in the thread today and am happy to answer any questions or dig into the architecture!