Git Product home page Git Product logo

hubble-otel's Introduction

Important

This repository is archived and unmaintained.

Hubble OTEL was an experimental project to integrate Hubble with OpenTelemetry.

If you are interested in a feature related to Hubble and OpenTelemetry that is not yet implemented, we encourage you to open an issue on the cilium issue tracker.

Hubble adaptor for OpenTelemetry

hubble-otel's People

Contributors

awesomepatrol avatar errordeveloper avatar lizrice avatar raphink avatar rolinh avatar weizhoublue avatar xmulligan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hubble-otel's Issues

basic CI setup

  • run Go checks and tests (#7)
  • build custom collector images (#14)
  • build hubble-otel image (#14)

receiver interface

It might be rather viable to implement a receiver interface and include it in the custom collector build and use OTel operator for deployment.

muti-node database options

Trace ID are currently stored locally in an ephemeral store using Badger. It would be easy to enable persistence across restarts, but in oder to run hubble-otel on each node, there will need to be an alternative database option. It's also possible Badger might work on top of a volume, which maybe worse investigating. It'd be quite viable to use a hosted K/V store instead.

run without the operator

It would be nice to have an example of how to run this as just a deployment and not have to deal the operator

bug: hubble reciever error

2023-12-23T02:11:28.329Z	info	[email protected]/logger.go:46	All 0 tables opened in 0s
	{"kind": "receiver", "name": "hubble"}
2023-12-23T02:11:28.331Z	info	[email protected]/logger.go:46	Discard stats nextEmptySlot: 0
	{"kind": "receiver", "name": "hubble"}
2023-12-23T02:11:28.331Z	info	[email protected]/logger.go:46	Set nextTxnTs to 0	{"kind": "receiver", "name": "hubble"}
2023-12-23T02:11:28.332Z	error	[email protected]/receiver.go:94	hubble reciever error	{"kind": "receiver", "name": "hubble", "error": "GetFlows failed: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp: lookup \\\\89.117.56.107: no such host\""}
github.com/cilium/hubble-otel/receiver.(*hubbleReceiver).Start.func1
	github.com/cilium/hubble-otel/[email protected]/receiver.go:94

misleading service name in HTTP responses

As HTTP responses actually come from Envoy, which runs in host netns, there are no pod labels of the original source endpoint.
This results in fallback service name being used.
Screenshot 2021-11-11 at 16 35 08

support L7 flows

  • capture sample DNS & HTTP flows (#19)
  • implement trace ID generation logic
  • add sample to the test suite (#19)
  • use trace IDs from HTTP header whenever present (#20)

instrumentation

  • add prometheus metrics for buffer size and utilisation, overall throughput, error counts and badger ops
  • add tracing to key functions

observed Hubble lost events: 1

When I build this docker image and try to run it with hubble and jaeger I get this error message after a minute or so: "observed Hubble lost events". It works for like a minute and then crashes.

How do i set hubble.tls.enable to false?

How do i set hubble.tls.enable to false?

Here is the code:

func main() {
flagsHubble := flags{
address: flag.String("hubble.address", "localhost:4245", "connect to Hubble on this address"),
tls: &flagsTLS{
enable: flag.Bool("hubble.tls.enable", false, "connect to Hubble using TLS"),
insecureSkipVerify: flag.Bool("hubble.tls.insecureSkipVerify", false, "disable TLS verification for Hubble"),
clientCertificate: flag.String("hubble.tls.clientCertificate", "", ""),
clientKey: flag.String("hubble.tls.clientKey", "", ""),
certificateAuthority: flag.String("hubble.tls.certificateAuthority", "", ""),
},
}

But i can't seem to set hubble.tls.enable. It complains that there's no flag.

expose database options

  • make trace database persisted to disk by default, with use-settable path
  • let user pass common badger options, e.g. in-memory
  • let user set trace TTL

observed Hubble lost events

I'm using hubble-otel to get hubble events and send to Jaeger. It works for a few minutes and then fails with the message, 'observed Hubble lost events'.

add type filter as user-settable parameter

Screenshot 2021-11-10 at 19 35 21

There are a of spans that are not very meaningful, in particular Cilium policy verdict: redirected stand out (as seen above). It probably makes sense to only export L7 spans by default, and leave low-level items as an opt-in for advanced users.

refresh trace ID TTL on read

The TTL on trace ID should be updated when new flows belonging to the same connection are detected, so that window is extended for long lived connection that see ongoing activity.

manifests

  • daemonset option with unix socket
    • this is for GKE and cases where collector runs as a daemonset also
  • deployment option with TLS

This depends on #1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.