Coder Social home page Coder Social logo

odigos-io / odigos Goto Github PK

View Code? Open in Web Editor NEW
3.1K 3.1K 187.0 80.8 MB

Distributed tracing without code changes. πŸš€ Instantly monitor any application using OpenTelemetry and eBPF

Home Page: https://odigos.io

License: Apache License 2.0

Dockerfile 0.56% Makefile 1.88% Go 69.02% TypeScript 24.27% JavaScript 2.15% Shell 1.06% Python 1.05%
dotnet ebpf go java javascript kubernetes logs metrics monitoring observability opentelemetry traces

odigos's People

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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

odigos's Issues

Opensearch Destination

Is your feature request related to a problem? Please describe.
We have an ELK-like stack (FLOOD stack?) with OpenSearch for monitoring and observability. This project would be a game changer if OpenSearch was supported as a destination.

Describe the solution you'd like
OpenSearch as log/metric/trace destination for odigos

Java applications always crash when instrumentation is enabled

Describe the bug
Java applications in bank-of-athnos always crash when instrumentation is enabled

To Reproduce
Steps to reproduce the behavior:

# install bank-of-athnos
kubectl apply -f https://raw.githubusercontent.com/keyval-dev/bank-of-athnos/main/release/kubernetes-manifests.yaml

# install odigos 
helm repo add odigos https://keyval-dev.github.io/odigos-charts/
helm install my-odigos odigos/odigos --namespace odigos-system --create-namespace

Enable instrumentation with the UI, and find pod are crashed

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: Ubuntu 16.04.7 LTS
  • kind: 0.17.0

Additional context
Add any other context about the problem here.

Do not inject monitoring, system, logging and other related namespaces

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Support applications running on serverless kubernetes services

Describe the solution you'd like
Currently, instrumentation is achieved through device plugins, which are deployed through daemonsets. This approach does not work well in serverless services.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

The UI should not require a "http" or "https" prefix for OTLP endpoint

Describe the bug
Current UI requires a "http" or "https" prefix for OTLP endpoint. While in fact, it is using otlp/grpc instead of otlp/http. According to the OpenTelemetry Collector naming convention, we should use ip:port to indicate the use of the otlp/grpc protocol and http://ip:port or https://ip:port to indicate the use of the otlp/http protocol.

To Reproduce
Steps to reproduce the behavior:

  • Use UI to add destination of OpenTelemetry.

Expected behavior
The UI should not requires a "http" or "https" prefix for OTLP endpoint.

Screenshots
image

pod odigos-data-collection-zn8fl has error log

2022-10-18T08:18:24.473Z	error	helper/transformer.go:110	Failed to process entry	{"kind": "receiver", "name": "filelog", "pipeline": "logs", "operator_id": "parser-crio", "operator_type": "regex_parser", "error": {"description": "time parser: parsing time \"2022-10-18T16:18:24.42145571+08:00\" as \"2006-01-02T15:04:05.000000000-07:00\": cannot parse \"08:00\" as \".000000000\""}, "action": "send", "entry": {"observed_timestamp":"2022-10-18T08:18:24.473080079Z","timestamp":"0001-01-01T00:00:00Z","body":"2022-10-18T16:18:24.42145571+08:00 stdout F [GIN] 2022/10/18 - 08:18:24 | 500 |      20.148Β΅s |       10.42.0.4 | POST     \"/break?http_code=500\"","attributes":{"log":"[GIN] 2022/10/18 - 08:18:24 | 500 |      20.148Β΅s |       10.42.0.4 | POST     \"/break?http_code=500\"","log.file.path":"/var/log/pods/default_historicaltruth-5d8c48c95c-2gqnm_0b6a83d1-2f18-414d-ad37-c161ea393804/historicaltruth/0.log","logtag":"F","stream":"stdout","time":"2022-10-18T16:18:24.42145571+08:00"},"severity":0,"scope_name":""}}
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper.(*TransformerOperator).HandleEntryError
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/helper/transformer.go:110
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper.(*ParserOperator).ParseWith
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/helper/parser.go:173
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper.(*ParserOperator).ProcessWithCallback
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/helper/parser.go:116
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper.(*ParserOperator).ProcessWith
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/helper/parser.go:102
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/parser/regex.(*Parser).Process
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/parser/regex/regex.go:103
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/transformer/router.(*Transformer).Process
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/transformer/router/router.go:135
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper.(*WriterOperator).Write
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/helper/writer.go:65
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/input/file.(*Input).emit
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/operator/input/file/file.go:65
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/fileconsumer.(*Reader).ReadToEnd
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/fileconsumer/reader.go:138
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/fileconsumer.(*Input).poll.func1
	github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.55.0/fileconsumer/file.go:159

Update CONTRIBUTING.md file to explain how to develop Odigos locally

The main steps involved when debugging Odigos locally:

  • Use Kind kubernetes cluster
  • Build custom images of Odigos and load them to Kind via:
 TAG=<CURRENT-ODIGOS-VERSION> make build-images load-to-kind
  • Make sure TAG is similar to the Odgiso version output: odigos version
  • Restart all pods in odigos-system namespace:
kubectl delete pods --all -n odigos-system

How to add a Loki url for backend

Just really wanna know what is the url to be added for destination when using Loki as backend, as I can't find any example for the configuration, nor any detail docs on this, and the configuration failed. pls. advise, thanks.

my Loki deploy is as below:
root@xxxxx:# kubectl -n logging get pods
NAME READY STATUS RESTARTS AGE
loki-0 1/1 Running 0 4m32s
loki-grafana-7595cff4f5-4szxs 2/2 Running 0 4m31s
loki-promtail-2n28d 1/1 Running 0 4m32s
loki-promtail-46q2l 1/1 Running 0 4m32s
loki-promtail-6fjfm 1/1 Running 0 4m32s
loki-promtail-8fzzp 1/1 Running 0 4m32s
loki-promtail-8ndgj 1/1 Running 0 4m32s
loki-promtail-h7nfx 1/1 Running 0 4m32s
loki-promtail-nn25b 1/1 Running 0 4m32s
loki-promtail-r7nmv 1/1 Running 0 4m32s
loki-promtail-xbxpg 1/1 Running 0 4m32s
root@xxxxx:
# kubectl -n logging get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
loki ClusterIP 10.68.124.157 3100/TCP 4m9s
loki-grafana ClusterIP 10.68.25.148 80/TCP 4m9s
loki-headless ClusterIP None 3100/TCP 4m9s
loki-memberlist ClusterIP None 7946/TCP 4m9s

The pod of the demo app is crashed when instrumentation is enabled

Describe the bug
The pod of the demo app is crashed when instrumentation is enabled.

To Reproduce
Steps to reproduce the behavior:

  1. Run command according to the doc:
    kubectl apply -f https://raw.githubusercontent.com/keyval-dev/microservices-demo/master/release/kubernetes-manifests.yaml

  2. Install Odigos
    helm repo add odigos https://keyval-dev.github.io/odigos-charts/
    helm install my-odigos odigos/odigos --namespace odigos-system --create-namespace

  3. Enable instrumentation with the UI

  4. Find pod are crashed
    kubectl get pod -n default

Expected behavior
The pod should not be crashed

Screenshots
The following screenshot is after I enable instrumentation for frontend pod:
image

Environment:

  • OS: Ubuntu 18.04.6 LTS
  • kubectl version
    WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
    Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:58:16Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/amd64"}
    Kustomize Version: v4.5.7
    Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:51:25Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/amd64"}
  • Browser Firefox 109.0

Additional context
It seems the problem is caused by some compatibility issue of Golang packages:

kubectl logs -f frontend-54d7ddf7f4-54tcn -p -c server-instrumentation
... ...
{"level":"info","ts":1675158604.7114024,"caller":"grpc/probe.go:213","msg":"closing gRPC instrumentor"}
{"level":"info","ts":1675158604.7114253,"caller":"server/probe.go:223","msg":"closing gRPC server instrumentor"}
{"level":"info","ts":1675158604.7114346,"caller":"server/probe.go:179","msg":"closing net/http instrumentor"}
{"level":"info","ts":1675158604.7114527,"caller":"mux/probe.go:179","msg":"closing gorilla/mux instrumentor"}
{"level":"error","ts":1675158604.7114713,"caller":"cli/main.go:79","msg":"error while running instrumentors","error":"field UprobeClientConnInvoke: program uprobe_ClientConn_Invoke: map .rodata: map create: read- and write-only maps not supported (requires >= v5.2)","stacktrace":"main.main\n\t/app/cli/main.go:79\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}

Installing odigos stack without version specified results in odigos pods failure.

Describe the bug
Installing odigos stack without version specified via cli results in odigos pods failure.

To Reproduce
Steps to reproduce the behavior:

  1. Run odigos cli install command without the --version tag specified.
  2. Observe InvalidImageName status for odigos pods.

Expected behavior
If version isn't specifically set up latest should be apply even if this docker images tag doesn't exist yet.

Screenshots
image

β€œFailed to apply default image tag "keyval/odigos-odiglet:": couldn't p
arse image reference "keyval/odigos-odiglet:": invalid reference format”

Add relevant texts to odigos cli help

When running $odigos --help, the following output is generated:

A longer description that spans multiple lines and likely contains
examples and usage of using your application. For example:

Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.

Usage:
  odigos [command]

Available Commands:
  add         A brief description of your command
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  install     Install Odigos
  ui          Start the Odigos UI
  uninstall   A brief description of your command
  version     A brief description of your command

Flags:
  -h, --help                help for odigos
      --kubeconfig string   (optional) absolute path to the kubeconfig file (default "/Users/amirblum/.kube/config")

Use "odigos [command] --help" for more information about a command.

Odigos should replace all the default texts such as "A brief description of your command" with meaningful information

Support for sending logs, metrics, traces to ZincObserve

Greetings from ZincObserve team - https://github.com/zinclabs/zincobserve . Would love to see support for ZincObserve in odigo.

Is your feature request related to a problem? Please describe.
Support for sending logs, metrics and traces to ZincObserve

Describe the solution you'd like
A direct selection for ZincObserve in odigos that allows people to send logs, metrics and traces to ZincObserve. ZincObserve supports:

Logs - JSON array or elasticsearch _bulk format
Metrics - Prometheus remote write
Traces - OTLP

Here are details around it - https://zinc.dev/docs/guide/ingestion/

There should not be really much to do for odigo team to achieve this as all the elements are already there.

Describe alternatives you've considered
use elasticsearch, opentelemtry, and prometheus enpoints separately.

Additional context
No

some Golang and Java language services cannot be recognized

Describe the bug
some Golang and Java language services cannot be recognized.
eg.
image

Expected behavior
i expect that all Java , Golang and Python language service can be recognized.

Desktop (please complete the following information):
AWS EKS 1.21

Additional context
what can i do next?

Configure PodSecurityPolicy for Odiglet during installation if enabled in cluster

Kubernetes clusters with PodSecurityPolicy enabled may refuse to deploy Odiglet due to the privileged permissions required (hostPID, hostNetwork, hostPath, etc).
We should detect if PodSecurityPolicy is enabled in this cluster (maybe by finding if the resource exists?)
and if so we should create a new policy and bind it to the odiglet service account.

Opt-out installation leaves deployments in error state because uninstallation is a work in progress

Describe the bug
While installing in a cluster with existing deployments, installing and using the opt-out option for odigos leads to a situation where cluster services end up in crashloopbackoff with no easy way to fix other than reapplying all deployment manifests.

I understand that the documentation states uninstalling is a work in progress, but the mutation of deployments and statefulsets leaves them in a bad state after uninstall, and users without gitops or similar deployment methods will face challenges in fixing their deployments. A workaround and a prominent warning should be displayed on this repo until there is a clean uninstall path.

To Reproduce
Steps to reproduce the behavior:

  1. Install Odigos
  2. In UI setup, go through the opt-out option flow for setup
  3. Setup a backend (optional)
  4. wait for services to be instrumented
  5. disable services that are enabled for instrumentation in odigos UI
  6. helm uninstall odigos
  7. Pods that start up that were instrumented still have odigos sidecar, configurations, volumemount, and command changes. These pods may also be in crashloop/containerconfigcreateerror states.

Expected behavior
Changes by odigos to deployments should be reverted when odigos is disabled and uninstalled.

Duplicate links to docs intro page

Describe the bug
Minor duplication in README - "Getting Started Guide", "Documentation", and "quickstart guide" all end up at https://docs.odigos.io/intro as it is the default docs page

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://github.com/keyval-dev/odigos#readme
  2. Click on any of the 3 links mentioned ("Getting Started Guide", "Documentation", and "quickstart guide")

Expected behavior
Links lead to different information/user flows, or links are deduplicated and have consistent labeling.

odiglet on CrashLoopBackOff with Docker Desktop on Macbook M1

helm install my-odigos odigos/odigos --namespace odigos-system --create-namespace ends in the following pods installed but odiglet is not coming up.

odiglet-gg9tw                          0/1     CrashLoopBackOff   69 (4m35s ago)   6h9m
odigos-autoscaler-6f98b9f9-86m9s       2/2     Running            13 (5h15m ago)   6h9m
odigos-instrumentor-66bd6d6f5b-ckl7q   2/2     Running            13 (5h15m ago)   6h9m
odigos-scheduler-6d694ff89f-vhlxv      2/2     Running            14 (5h15m ago)   6h9m
odigos-ui-fb4485899-mrs9p              1/1     Running            2 (5h15m ago)    6h9m

Docker Desktop 4.17.0 (99724). on a M1 Macbook MacOS Ventura 13.3.1 (22E261)

Error via k logs odiglet-gg9tw -n odigos-system is:

failed to try resolving symlinks in path "/var/log/pods/odigos-system_odiglet-gg9tw_3ca139e5-35f1-48d3-a748-afe2fbcf40e8/odiglet/69.log": lstat /var/log/pods/odigos-system_odiglet-gg9tw_3ca139e5-35f1-48d3-a748-afe2fbcf40e8/odiglet/69.log: no such file or directory%

k version -o yaml shows:

clientVersion:
  buildDate: "2022-12-08T19:58:30Z"
  compiler: gc
  gitCommit: b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d
  gitTreeState: clean
  gitVersion: v1.26.0
  goVersion: go1.19.4
  major: "1"
  minor: "26"
  platform: darwin/arm64
kustomizeVersion: v4.5.7
serverVersion:
  buildDate: "2022-11-09T13:29:58Z"
  compiler: gc
  gitCommit: 872a965c6c6526caa949f0c6ac028ef7aff3fb78
  gitTreeState: clean
  gitVersion: v1.25.4
  goVersion: go1.19.3
  major: "1"
  minor: "25"
  platform: linux/arm64

thanks

docs: update adding new destination guide

The current guide for adding new destination is not updated.
We changed the way a new destinations are added.
Here is an example of a PR that added destination with the new way: #535

The relevant doc file is: docs/adding-new-dest.mdx

Move language detection to odiglet

The current language detection mechanism of creating a pod, detecting the language, and then terminating the pod is error prune. I saw some OutOfPods errors when running on EKS clusters.

Moving the same lang detection logic to odiglet will make the language detection process faster and more robust.

Export logs from SDKs using OTLP when possible

Currently, logs are extracted using the filelog receiver. Moving to OTLP for exporting has the following advantages:

  • Correlation: attach traceId and spanId without messing with the output written to stdout.
  • Flexible deployment: currently the collectors that receive logs have to be on the same node as the application (deployed as DaemonSet)
  • Alignment with traces and metrics

Getting logs by scraping pod files will still be in use for unrecognized pods or for SDKs without a logs exporter.
For example, there is no SDK for MySQL but we still want to let the users ship MySQL logs to the selected destinations.

Implementing this issue includes two tasks:
A. configure all the SDKs to export logs via OTLP exporter
B. configure the collectors' include attribute of the filelog receiver to only include unrecognized applications or known languages without logs exporter.

At the time of writing this issue, the following SDKs implements OTLP logs exporter:

Language OTLP Logs Exporter Exists
Java Exists
Python Missing implementation for OTLP over HTTP
Go Not Exists
Javascript Not Exists
.NET Not Exists

Permit basic authentification, port, headers and path for prometheus and other selfhosted endpoint

Hello,

Could you allow advanced users to set the full url of the endpoints,
and maybe on the front the port and protocol used by the gateway directly on the web page.

This would allow us to have,

  • basic authentication support rfc7617
  • custom port support
  • path
  • headers

This will allow a good integration with a more complex architecture like this one:

What do you think about it?

Uninstall cli process cleans up pods' templates but doesn't clean up namespace template.

Describe the bug
While uninstalling odigos via cli, label odigos-instrumentation=enabled in instrumented namespace isn't removed. This situation results with the issue with discovering services in affected namespaces while setting up odigos once again from scratch.

To Reproduce
Steps to reproduce the behavior:

  1. Install odigos using cli .
  2. Instrument services in one of the namespaces.
  3. Uninstall odigos.
  4. Try to configure instrumentation for same services in same namespace once again.

Expected behavior
No issues with discovering previously instrumented services during odigos reinstallation

Screenshots
During reinstrumentation:
image
image
image

CLI: odigos install return success even if DaemonSet pods are not up

When installing odigos via the CLI by running odigos install the cli reports installation successful even if Odiglet (the deployed DaemonSet) is not running. Kubernetes may refuse to start the pods of Odiglet (for example: if there is a PodSecurityPolicy that blocks hostPID).

arePodsReady function should also check that for any DaemonSet in the ns namespace the number of running pods equal to the number of desired and is bigger than 1.
https://github.com/keyval-dev/odigos/blob/2f7d45c9a2deb1751bab3e120fe86a1ea1fdc7f5/cli/cmd/install.go#L86

Remove Scrollbar from Entire App Globally

Issue

Problem Statement
Currently, our application displays scrollbars in certain areas of the app, which can be visually distracting and affect the overall user experience. We need to implement a solution to remove these scrollbars entirely by using CSS.

Expected Behavior

When users interact with our app, there should be no visible scrollbars on the page, even when the content exceeds the viewport height or width. Instead, the content should seamlessly flow without any scroll indicators.

Steps to Reproduce

  1. Launch the application.
  2. Navigate to pages where scrollbars are currently visible (e.g., long content, modals, etc.).

Current Implementation

Currently, scrollbars are visible and are handled individually.

Desired Implementation

We need to apply CSS styles that hide the scrollbars throughout the entire app, ensuring a clean and seamless user experience. This should be achieved without breaking any functionality or causing layout issues.

Possible Solution

One approach to remove scrollbars is by using CSS properties such as overflow: hidden on specific elements or globally. We should carefully consider where and how this CSS is applied to ensure it doesn't interfere with the app's functionality.

Acceptance Criteria

  • Scrollbars are not visible throughout the entire app.
  • The app's functionality remains intact.
  • Content can still be scrolled using other methods like mouse wheels or touch gestures.

Note

Before implementing any changes, it's essential to thoroughly test the proposed solution to ensure it doesn't introduce any unforeseen issues or negatively impact the user experience.

Please feel free to assign this issue to a developer who can work on implementing the solution and provide updates as progress is made. If you have any questions or need further clarification, don't hesitate to ask.

destinations page: add search

As more and more destinations are added, it will be harder for users to find the exact destination they are looking for.
A common way to solve this problem is by implementing a search.
Search can probably happen on the client side.

Odigos uninstall command: count Enter as a yes response when prompted

In Odigos CLI, when running odigos uninstall the user is prompted to confirm the uninstall.
We should treat pressing Enter as writing y.

Current state:

➜ odigos uninstall
About to uninstall Odigos from namespace odigos-system
Are you sure? [Y/n]:
Aborting uninstall

Desired:

➜ odigos uninstall
About to uninstall Odigos from namespace odigos-system
Are you sure? [Y/n]: 
Uninstalling Odigos Deployments                   βœ”
Uninstalling Odigos DaemonSets                    βœ”
Uninstalling Odigos ConfigMaps                    βœ”
Uninstalling Odigos CRDs                          βœ”
Uninstalling Odigos RBAC                          βœ”
Uninstalling Odigos Secrets                       βœ”
Uninstalling Namespace odigos-system              βœ”
Waiting for namespace to be deleted               βœ”
Rolling back odigos changes to pods               βœ”

The data displayed on the choose source screen is incorrect.

The list of applications that appear on the source selection page defaults to the applications of the default namespace, the problem occurs when there is a namespace that starts with a lowercase letter "d" and is displayed first in the dropdown list.

To Reproduce
Steps to reproduce the behavior:

  1. Make sure you have a namespace that starts with a lowercase d, If it doesn't exist, you can create one with the command: kubectl create ns <name>
  2. Go to Setup page
  3. See error

Expected behavior
The apps listed should correspond to the information displayed in the dropdown menu.

Screenshots
image

Generate supported destination table according to the destination YAML files

Currently, our README.md contains a hard-coded table of all the destinations supported by Odigos.
The same data is available in destination/data/*.yaml files.
The destination table could be automatically generated from the YAML files, making it always in sync with the destinations actually supported.

Validate destinations URLs in frontend before saving

Currently, the only validation the frontend performs is that the destination URL is a valid URL.
We can help users avoid typing the wrong URLs by performing more validations in the frontend before persisting the destination.
Examples of possible additional validations:

  • Elasticsearch: URL should contain port 9200
  • Generic OTLP: URL should contain port 4317
  • Datadog: URL should be a valid site
  • and many more, we can probably think of a better validation for every destination.

The first step in implementing this issue may be just validating a single destination in addition to thinking about a good design for validations in frontend.

destinations page: more granular categories

The current categories are only managed / open source.
We plan to add many more observability backends in the future, which will require more granular categories such as Cloud Providers, Security, Finance, etc.

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.