Show HN:对开发者友好的原生 OTel:仅开源、有状态、传输中的可观测性
5 分•作者: jratkevic•4 天前
各位 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 供应商的依赖。
- **传输中的 PII(个人身份信息)脱敏:** 它可以实时检测并从您的日志和追踪中移除敏感信息,然后再将其传输到互联网上,从而消除了“事后摄取”的清理成本和合规风险。
- **K8s 上下文注入:** 由于它与您的集群深度集成,它可以在统一的 UI 中将您的 OTel 流直接映射到您的 K8s 资源(Deployments、Pods、CRDs)。
API 使用 Go 编写([github.com/mydecisive/octant]),整个堆栈可以通过我们的 Helm charts 直接部署到您的集群中。
我们非常希望您能在开发集群上部署并进行测试。我们最近刚刚合并了来自我们第一位社区贡献者的 PR,这对我们来说是一个巨大的里程碑!我们希望保持这种势头。如果您对 K8s 可观测性与自主性、OpenTelemetry 流水线或 Go/React 感兴趣,我们已经标记了一些“适合初学者的问题”,并非常乐意欢迎您加入该项目。
GitHub:<a href="https://github.com/MyDecisive/octant" rel="nofollow">https://github.com/MyDecisive/octant</a>
网站:<a href="https://www.mydecisive.ai/" rel="nofollow">https://www.mydecisive.ai/</a>
我今天会一直关注此帖,很乐意回答任何问题或深入探讨架构!
查看原文
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!