Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge from beta-ui to main #5

Merged
merged 80 commits into from
Nov 12, 2024
Merged

merge from beta-ui to main #5

merged 80 commits into from
Nov 12, 2024

Conversation

BenElferink
Copy link
Owner

No description provided.

tamirdavid1 and others added 30 commits October 21, 2024 16:37
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
…-io#1611)

At the moment, dotnet and java native agent both use the device id in
the `service.name` resource attribute, and this is replaced by the real
service name and additional k8s attributes in the node processor later
on.

eBPF instrumentations and OpAMP based agents injects the resource
attribute directly and do not need the processor.

By default, the processor is enabled, but users that do not use the java
native or dotnet may wish to disable it, and reduce load from the
cluster. This PR adds a profile to do that.

This profile is temporary until we migrate dotnet and java to eBPF
…finitely (odigos-io#1616)

1. add event filter for reconciler of collector group - to prevent
endless reconcile loops
2. remove unused property from collector group CRD
3. pin version of java base image in tests for deterministic test result
Co-authored-by: Amir Blum <amirgiraffe@gmail.com>
…ting in config (odigos-io#1618)

Since node collector runs as a DaemonSet with host network (so that otlp
ports 4317 and 4318 are accessible from the pods exporters), it also
shares the ports namespace with the node.

The ports it binds to might conflict with ports of other tools installed
in the cluster that does similar things, and in this case data
collection will fail to start with error: "listen tcp 0.0.0.0:8888:
bind: address already in use".

The collectors currently expose and scrape their own metrics on port
`8888` which is good candidate for collistions.

This PR:

- makes the default port for own telemetry endpoint for node collector
`55682` to have low chance of collision with something that already runs
on the node (instead of using `8888` as default).
- Adds an option to odigos config to set the port, in case one needs it
hard-coded to a specific value to manage the public ports on the node).

The port to use is written on the collectors group CRD by the scheduler
to abstract away the default and odigos config resolving, and allow the
resolved value to be more easer to consume.

For the cluster collector, the collector runs as deployment with k8s
service, thus we can safely use `8888` without colliding with anything
else
This PR adds some handling for when the pipeline has not yet been
created, making sure the `odigos describe` output is well formmated.

It also adds a human readable text to describe the expected state for
cluster and node collectors


![image](https://github.com/user-attachments/assets/23f503cc-d4f9-45a8-b7a3-94b8dd9abbfa)
…te package (odigos-io#1623)

This is just improving the structure of the code, to prepare it for
follow-up refactors while having small - reviewable PRs
…1626)

Removing the default SDKs from odigos config.
The updated way of changing instrumentation SDK is with rules and
profiles.

This change includes:
* Remove the setting of the SDKs by the CLI.
* Add to instrumentor: checking the tier and setting the default SDKs
map once.
* Add role to instrumentor to `get` secrets in odigos ns.
* Remove odigosconfig role for instrumentor.
* Adjust `envtest` for env overwriter - instead of reading writing to
mock of `odigosconfig` - mock the default SDK for the new code and
simulate a changing SDK by mocking instrumentation rule.
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
…o tools (odigos-io#1633)

Until this PR, everytime we calculated the `odigos describe` output, we
transformed it to text, which makes it less useful to be used in odigos
ui and other tools, as the data is human readable and not machine
readable.

This PR separates the 2 tasks. Now one can simply get the results of the
`odigos describe` command and now immediately if something is still in
transit or has errors.
Tools can process this data to display it nicely or act upon it. This
function offers an handy aggregation for the relevant data in the
context of odigos entities.
odigos-io#1636)

… and started

---------

Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Once all the apps are un-instrumented we remove the node CG.
This causes repeated reconcile errors in the OpAmp server:

>
{"level":"error","ts":1730064874.9696624,"caller":"controller/controller.go:316","msg":"Reconciler
error","controller":"collectorsgroup","controllerGroup":"odigos.io","controllerKind":"CollectorsGroup","CollectorsGroup":{"name":"odigos-data-collection","namespace":"odigos-system"},"namespace":"odigos-system","name":"odigos-data-collection","reconcileID":"59801121-08a6-495c-b6af-38c8d02c6cf7","error":"CollectorsGroup.odigos.io
\"odigos-data-collection\" not
found","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:316\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:263\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.19.0/pkg/internal/controller/controller.go:224"}
this PR makes it so that `odigos describe source` uses 2 phases: analyze
and print.

This allows the UI and tools to fetch the describe result and use it,
without converting it to human text
…digos-io#1654)

Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
This PR fixes a bug in odigos-io#1649 where a pointer would be accessed without
first checking if it's nil
odigos-io#1663)

…me up

Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
…LI (odigos-io#1667)

Cleanup in CLI:
* Remove the direct dependency in `controller-runtime`. This was done by
avoiding using the `Object` type in that package and using our own. This
resulted in removing the direct dependency but we still have indirect
dependency which comes from our `api` package: more specifically we use
"sigs.k8s.io/controller-runtime/pkg/scheme" for scheme builder in our
`api` package.
* Remove unused files from `CLI` and `k8sutils`.
…#1666)

Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
BenElferink and others added 27 commits November 11, 2024 11:10
Instead of passing an empty object and the object kind, pass only the
object kind. Use `workload.ClientObjectFromWorkloadKind(objKind)` within
the function.
Co-authored-by: Ben Elferink <ben.elferink@icloud.com>
Co-authored-by: Tamir David <tamir@odigos.io>
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Co-authored-by: Amir Blum <amirgiraffe@gmail.com>
Co-authored-by: Ron Federman <73110295+RonFed@users.noreply.github.com>
Co-authored-by: yodigos <yoav@odigos.io>
Co-authored-by: Mike Dame <mike@odigos.io>
Co-authored-by: alonbraymok <alonbraymok007@gmail.com>
Co-authored-by: Alon Braymok <138359965+alonkeyval@users.noreply.github.com>
Co-authored-by: Ben Elferink <ben.elferink@icloud.com>
Co-authored-by: Tamir David <tamir@odigos.io>
Co-authored-by: Tamir David <tamirdavid@Tamirs-MacBook-Pro.local>
Co-authored-by: Amir Blum <amirgiraffe@gmail.com>
Co-authored-by: Ron Federman <73110295+RonFed@users.noreply.github.com>
Co-authored-by: yodigos <yoav@odigos.io>
Co-authored-by: Mike Dame <mike@odigos.io>
Co-authored-by: alonbraymok <alonbraymok007@gmail.com>
@BenElferink BenElferink merged commit 89ab764 into main Nov 12, 2024
13 of 16 checks passed
@BenElferink BenElferink deleted the gen-1695 branch December 28, 2024 17:59
BenElferink pushed a commit that referenced this pull request Feb 4, 2025
[GEN-2317]: support containers from instru. config spec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants