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

[core] Add Integrations #255

Open
ricoberger opened this issue Dec 25, 2021 · 0 comments · Fixed by #401
Open

[core] Add Integrations #255

ricoberger opened this issue Dec 25, 2021 · 0 comments · Fixed by #401
Assignees
Labels
enhancement New feature or request

Comments

@ricoberger
Copy link
Member

ricoberger commented Dec 25, 2021

Is your feature request related to a problem? Please describe

The goal of kobs is it to simplify the operation of services on Kubernetes by providing the concept of applications. This way all the important information for a service like metrics, logs, traces and alerts can be find in one place. It would be nice when these information can also be connected via integrations.

An integration should allow users to connect all information of a service on a plugin level, for example:

  • When a log line in the klogs plugin contains a field named traceID, it should be possible to open the corresponding trace in the Jaeger plugin.
  • When a span from Istio in the Jaeger plugin contains a tag guid:x-request-id=628d57f7-1978-99f1-aace it should be possible to open the corresponding access logs in the klogs plugin (content.request_id='628d57f7-1978-99f1-aace').
  • When we collect the "default" Kubernetes metrics like resource usage of a Pod / Container or the usage of a PVC, it should be possible to add these information to the corresponding pods, without that a user has to add the dashboard annotation to each Pod. This can also be done for the status metrics of a Deployment, StatefulSet, DaemonSet, etc.

Describe the solution you'd like

These integration should be configured in the kobs configuration file in the section of each plugin, which means that we can add a new integrations field to the configuration of each plugin, which should support this feature.

To have not that much breaking changes in the plugin configurations in the future, we should have a "scaleable" solution for this feature in place. Currently my preferred way of implementing this, is to add a type field for each integration, where we can then use the type name as another key to define the options for the integration. We are already using this schema in various places, e.g. the provider configuration of clusters:

type Config struct {

@ricoberger ricoberger added the enhancement New feature or request label Dec 25, 2021
@ricoberger ricoberger assigned ricoberger and unassigned ricoberger Jul 4, 2022
ricoberger added a commit that referenced this issue Jul 22, 2022
Add a new integrations feature for kobs. In this first iteration we
implemented the suggested integrations feature from #255 for Kubernetes
Resources.

This integration allows an administrator of kobs to add a set of default
dashboards to Kubernetes Resources. This way we can add for example a
resource usage dashboard to all Pods, without that each Pod must have
the "kobs.io/dashboards" annotation.

The configured dashboards in the integrations and the dashboards from
the "kobs.io/dashboards" annotation are always merged and not
overwritte.
@ricoberger ricoberger self-assigned this Jul 22, 2022
ricoberger added a commit that referenced this issue Jul 22, 2022
Add a new integrations feature for kobs. In this first iteration we
implemented the suggested integrations feature from #255 for Kubernetes
Resources.

This integration allows an administrator of kobs to add a set of default
dashboards to Kubernetes Resources. This way we can add for example a
resource usage dashboard to all Pods, without that each Pod must have
the "kobs.io/dashboards" annotation.

The configured dashboards in the integrations and the dashboards from
the "kobs.io/dashboards" annotation are always merged and not
overwritte.
@ricoberger ricoberger linked a pull request Jul 22, 2022 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

1 participant