Giter Site home page Giter Site logo

kobsio / kobs Goto Github PK

View Code? Open in Web Editor NEW
80.0 5.0 8.0 78.53 MB

Kubernetes Observability Platform

Home Page: https://kobs.io

License: MIT License

Makefile 0.08% HTML 0.22% TypeScript 64.05% Dockerfile 0.02% Go 35.41% Shell 0.06% JavaScript 0.12% Smarty 0.06%
kubernetes observability logging monitoring tracing developer-experience developer-portal kobs kobsio

kobs's People

Contributors

0x46616c6b avatar axdotl avatar dependabot[bot] avatar jonher937 avatar marwonline avatar matthiastz avatar mcmunder avatar monotek avatar ricoberger avatar scthi avatar staffbase-robert avatar stefan-scheidewig avatar timkante 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

kobs's Issues

[core] Rework variable handling in dashboards

Is your feature request related to a problem? Please describe

At the moment it is difficult to extend the supported variables in the Dashboard component with new options, e.g. an option from the Azure plugin, which loads all resource groups or an option in the klogs plugin which allows users to select a value from a field.

The problem is that all options for the variables are defined within the following function:

const { isError, error, data, refetch } = useQuery<IVariableValues[] | null, Error>(

Describe the solution you'd like

A better solution would be to define the options to load variable values in the plugin, for example we can add a new optional field to the IPluginComponent interface:

export interface IPluginComponent {
  home?: React.FunctionComponent<IPluginPageProps>;
  icon: string;
  page?: React.FunctionComponent<IPluginPageProps>;
  panel: React.FunctionComponent<IPluginPanelProps>;
  preview?: React.FunctionComponent<IPluginPreviewProps>;
  variables?: (variable: IVariable) => IVariableValues;
}

With the new variables field we can then define function for each plugin which takes the user defined variable (type: IVariable), then runs the plugin logic / executes the API request and returns the variable values (type: IVariableValues).

Additional context

  • With this new implementation it is also possible that variables can be defined via community plugins.
  • We have to find a new home for the Variable Plugin Options documentation. At the moment I think the best would be to add a new Variables heading on the same level as the Configuration and Options headings.

[applications] Improve applications functionality

Is your feature request related to a problem? Please describe

kobs is build around the concept of applications, which can be used to describe all aspects of operation a service on Kubernetes. At the moment the applications "plugin" lacks some important features:

  • It is possible to add tags to an application, but these tags are not always displayed and it is also not possible to operate on these tags, like filtering a list of applications (atm. filtering is only supported via clusters and namespaces).
  • The topology chart is very simple and feels not that nice when working with it.
  • Only applications which are running within a Kubernetes cluster can be described, but nowadays it is usual to have parts of the services running outside of Kubernetes (e.g. a managed database running at Azure).

In the next steps we should concentrate our focus on these issues.

Describe the solution you'd like

  • Tags: The defined tags in an Application CR are only displayed on the applications page (/applications), but not on the page for a single application (/application). This should be changed, so that describing applications via tags, becomes more useful. It should also be possible to filter a list of applications by the defined tags. Here we have to decide if we want to ignore the select cluster / namespace while filtering for tags or if the selected cluster / namespace should also be included. At the moment I prefer the second option, because we can leave the list of namespaces empty.
  • Topology Chart: The topology chart doesn't look very nice. Instead of the current layout we should adopt the layout from the Istio plugin. This way we are able to display more information in the topology chart and the overall style is improved. Next to that a user should be able to customize the topology chart. This can be done by allowing users to specify a style in the configuration which is then added based on tags or based on a new property in the Application CR. Last but not least it would also be nice to allow users to define dashboards / panels in the dependencies array of an application, which are then displayed when the user selects the edge between two applications. NOTE: We have to decide how we want to display applications in the topology chart, which do not match the tags (remove them vs. lower opacity).
  • External Applications: We should consider to support applications which are running outside of the configured Kubernetes clusters. At the moment an application is always bound to a cluster and namespace. For external applications users should be able to deploy an CR to the cluster, but then the namespace should not be that present in the whole UI.

[applications] applications with user/team authorization

Is your feature request related to a problem? Please describe

I like the idea of applications which is the start of application-centric approach. I succeed to login kobs with authentication enabled via keycloak provider. However, it seems that the logged in user can view/access all the applications filtered by cluster and namespace but not by the team which the user belongs to.

A team defined in the application cr.

apiVersion: kobs.io/v1
kind: Application
metadata:
  name: reviews
  namespace: bookinfo
spec:
   ...
  teams:
  - name: not-existing
    namespace: kobs
    cluster: kobs
  ...

teamCluster, teamNamespace and teamName in the following code snippet are always nil. If I'm not mistaken, they could be used to filter the applications.

applications.go

func (router *Router) getApplications(w http.ResponseWriter, r *http.Request) {
	clusterNames := r.URL.Query()["cluster"]
	namespaces := r.URL.Query()["namespace"]
	tagsList := r.URL.Query()["tag"]
	view := r.URL.Query().Get("view")
	teamCluster := r.URL.Query().Get("teamCluster")
	teamNamespace := r.URL.Query().Get("teamNamespace")
	teamName := r.URL.Query().Get("teamName")

Describe the solution you'd like

The logged in user can only view/access the applications owned by his/her team.

[azure] Extend plugin functionality

Is your feature request related to a problem? Please describe

This is a collection of the next features for the Azure plugin:

  • Compute Instances
  • Load Balancers
  • Virtual Machine Scale Set
  • Container Instances
  • Cost Management

Describe the solution you'd like

  • Compute Instances and Load Balancers are new types for the Azure plugin. Their implementation should follow the style of the other supported resources. These two resources can be named computeinstances and loadbalancers in the panel.
  • The Virtual Machine Scale Set resource should be extended by a details view for Virtual Machines when the DetailsVirtualMachines component is used within a panel in a dashboard. The details panel should contain the most important metrics for the selected Virtual Machine and the mounted disks including their metrics.
  • The logs view for Container Instances can be improved by allow users to filter logs and by allowing them to set a custom tail view in the logs panel. Within this we can also fix a small issue with the select component to switch between the different contains in the logs view, where the options list isn't closed after a container was selected.
  • The Cost Management component should use the same styling for the rendered pie chart as the other charts are using. This includes the color schema and the tooltip. Besides that we should also decided how we should handle the rendered legend in the pie chart and add a panel component.

[core] Time range selection is not intuitive

Describe the bug

When we select a time range to view get some data, e.g. metrics in the Prometheus plugin, we are adding the time, timeEnd and timeStart parameter to the URL. When we then copy this URL and open it a day later, it will still use the selected time range, but in the options dialog it shows Last 15 Minutes.

To Reproduce

  1. Open the Prometheus plugin
  2. Run a query and copy the URL
  3. Wait some minutes and refresh the browser page
  4. It still shows Last 15 Minutes but uses the time range from some minutes ago

Expected behavior

When the URL is opened, it should use the formerly selected time range, but it should show the custom time range instead of Last 15 Minutes.

Additional context

At the moment we have to pass the time parameter within the URL so that we can refresh the page. It would be better to not set the time parameter and instead change it directly in the state.

This must be done in nearly all plugins, so that we should create a general function in the core plugin to parse the search location which can be used across plugins. Then we can pass the time as additional parameter to this function and use it directly, so that we do not have to add it to the URL.

When a user then opens a plugin, we can decide on the provided parameter what we want to do:

  • If the timeEnd and timeStart parameters are present, we use them to set a custom time range.
  • If only the time parameter is present we, use it to set the time range, but where the timeStart is the current time and not a old one.

[klogs-plugin] Query Attributes Autocomplete

Is your feature request related to a problem? Please describe

I'm always frustrated when entering queries over and over, that I have to manually enter each field (attribute). Imho this is unnecessary type-work and can lead to typos etc.

Describe the solution you'd like

  • dropdown with a list of fields (attributes) that match my input (always on attribute level)
  • suggestions could e.g. come from the "fields" (1) area, where the available fields are listed after I run a query,
  • or (2) somehow from the Backend API that knows (persistence) which valid fields were used in queries in the past time -> here also some relevance/priority (which fields are used very often) could be integrated as well, but thats just an idea...

Example:
autocomplete-dropdown

Describe alternatives you've considered

There are none afaik. You can only manually copy fields or fully queries from e.g. a text field on your computer to Klogs, but there is no autocompletion yet.

Additional context

[app] Add Notifications

Is your feature request related to a problem? Please describe

It would be nice to have a notifications item, next to the settings and help icon in the header. When a user clicks on this icon a list of notifications should be shown.

Describe the solution you'd like

We add a new item to the header in the form of a notification icon. When a user clicks on the icon a notification drawer is shown, with a list (divided by groups) of notifications.

This notifications can be retrieved via plugins, in the first iteration it should be ok to support:

  • The resources plugin to show a list of Kubernetes Events from the different clusters / a list of unhealthy workloads
  • The opsgenie plugin to show open alerts / open incidents from Opsgenie.

What exactly is shown can be customized via the hub configuration file. There an administrator should be able to define the plugins which are used in the notifications and the corresponding options / queries to get the data.

[helm] Add Helm Plugin

Is your feature request related to a problem? Please describe

Helm is a popular package manager for Kubernetes, so it would be nice if we can also add support for Helm. This way we can allow users to manage their Helm releases via the kobs.

Describe the solution you'd like

A new plugin helm should be added, which shows a list of Helm releases. This list can then be filtered by clusters and namespaces. When the user selects a Helm release from the list a details panel is opened, with the current status, values and history of the release. Besides that a user should also be able to rollback the version of a release and maybe it should also be possible to delete a release. It should be possible to define these action on the user and team level via the plugin permissions when authentication is enabled.

For the panel implementation of the plugin it should be possible to show a list of Helm releases (by clusters / namespaces) or a single Helm release, which can be selected via cluster / namespace / name.

Local Docker build not working (make generate-assets)

Describe the bug

Docker build / compose as described in the CONTRIBUTION guide is not working (Mac)

 > [app 6/6] RUN make generate-assets:                                                                                                                                                                        
#22 0.601 yarn run v1.22.19                                                                                                                                                                                   
#22 0.655 $ lerna run build:shared --stream                                                                                                                                                                   
#22 1.225 lerna notice cli v5.5.0                                                                                                                                                                             
#22 1.356 lerna info Executing command in 1 package: "yarn run build:shared"                                                                                                                                  
#22 1.606 @kobsio/shared: $ tsc                                                                                                                                                                               
#22 8.278 lerna success run Ran npm script 'build:shared' in 1 package in 6.9s:
#22 8.279 lerna success - @kobsio/shared
#22 8.291 $ lerna run build --stream
#22 8.636 lerna notice cli v5.5.0
#22 8.737 lerna info Executing command in 22 packages: "yarn run build"
#22 9.227 @kobsio/app: $ react-scripts build
#22 9.406 @kobsio/plugin-datadog: $ PUBLIC_URL='/plugins/datadog' react-scripts build
#22 9.495 @kobsio/plugin-azure: $ PUBLIC_URL='/plugins/azure' react-scripts build
#22 9.568 @kobsio/plugin-elasticsearch: $ PUBLIC_URL='/plugins/elasticsearch' react-scripts build
#22 9.633 @kobsio/plugin-flux: $ PUBLIC_URL='/plugins/flux' react-scripts build
#22 15.38 @kobsio/plugin-flux: Creating an optimized production build...
#22 15.44 @kobsio/plugin-elasticsearch: Creating an optimized production build...
#22 15.47 @kobsio/plugin-datadog: Creating an optimized production build...
#22 15.56 @kobsio/app: Creating an optimized production build...
#22 15.62 @kobsio/plugin-azure: Creating an optimized production build...
#22 107.7 @kobsio/app: /kobs/node_modules/@kobsio/react-scripts/scripts/build.js:19
#22 107.8 @kobsio/app:   throw err;
#22 107.8 @kobsio/app:   ^
#22 107.8 @kobsio/app: RpcIpcMessagePortClosedError: Process 259 exited [SIGKILL].
#22 107.8 @kobsio/app:     at /kobs/node_modules/fork-ts-checker-webpack-plugin/lib/rpc/rpc-ipc/RpcIpcMessagePort.js:19:23
#22 107.8 @kobsio/app:     at Generator.next (<anonymous>)
#22 107.8 @kobsio/app:     at /kobs/node_modules/fork-ts-checker-webpack-plugin/lib/rpc/rpc-ipc/RpcIpcMessagePort.js:8:71
#22 107.8 @kobsio/app:     at new Promise (<anonymous>)
#22 107.8 @kobsio/app:     at __awaiter (/kobs/node_modules/fork-ts-checker-webpack-plugin/lib/rpc/rpc-ipc/RpcIpcMessagePort.js:4:12)
#22 107.8 @kobsio/app:     at ChildProcess.handleExit (/kobs/node_modules/fork-ts-checker-webpack-plugin/lib/rpc/rpc-ipc/RpcIpcMessagePort.js:18:42)
#22 107.8 @kobsio/app:     at ChildProcess.emit (node:events:513:28)
#22 107.8 @kobsio/app:     at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12) {
#22 107.8 @kobsio/app:   code: null,
#22 107.8 @kobsio/app:   signal: 'SIGKILL'
#22 107.8 @kobsio/app: }
#22 108.1 @kobsio/app: error Command failed with exit code 1.
#22 108.1 @kobsio/app: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
#22 108.3 lerna ERR! yarn run build exited 1 in '@kobsio/app'
#22 108.3 lerna WARN complete Waiting for 5 child processes to exit. CTRL-C to exit immediately.
#22 108.7 error Command failed with exit code 1.
#22 108.7 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
#22 108.8 make: *** [Makefile:61: generate-assets] Error 1
------
executor failed running [/bin/sh -c make generate-assets]: exit code: 2

To Reproduce

docker build -f ./cmd/kobs/Dockerfile -t kobsio/kobs:dev . or cd deploy/docker && docker-compose up

Expected behavior

Build is working

Screenshots

If applicable, add screenshots to help explain your problem.

Additional context

Add any other context about the problem here.

node --version
v19.3.0

go version
go version go1.19.1 darwin/amd64

[pingdom] Add Pingdom Plugin

Is your feature request related to a problem? Please describe

To be the one place for developers it would be nice if kobs can support for Pingdom. That way users can add their defined Pingdom checks to an Application CR, to view the external monitored uptime / response time within kobs.

Describe the solution you'd like

The Pingdom plugin should support the following features in it's first version:

  • A list of all defined Pingdom checks, where it should be possible to filter the checks by tag / name.
  • The details for a single check.
  • All the important metrics measured by Pingdom like response time, uptime and downtime.

Additional context

The API documentation for Pingdom can be found at https://docs.pingdom.com/api/.

[clickhouse] Undesired URL Decode when using ILIKE

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

  1. Go to https://<your-kobs-instance>/clickhouse-logging
  2. Enter following into search field namespace='monitoring' _and_ log=~'%403%'
  3. Execute search (hit Enter or press search-button)
  4. Admire change of search string to namespace='monitoring' _and_ log=~'@3%'

Expected behavior

When using ILIKE its not desired to have percent sequences interpreted as URL encoding

Screenshots

image

image

Additional context

n/a

Jaeger: results not refreshing when changing tracked service

Describe the bug

The Jaeger traces are not refreshed when changing the service.

To Reproduce

  1. Go to http://kobs.demo/jaeger
  2. Select any service
  3. Click search button
  4. Change the service
  5. Click search button
  6. The URL changes but the results are not updated. The API call still uses the first service. Reloading the page loads the desired traces.

Expected behavior

URL changes and triggers change of the traces in the results view.

Screenshots

Additional context

New Plugin Configuration steps

Hi Team,

Kindly share configuration documents with steps to configure the new Plugin which will be useful to configure and test the new plugin.
We implemented a new plugin but we are not able to integrate it with kobs. Maybe we are missing some configuration ?.Please share detailed configuration steps.

Thanks,
Harry

[opsgenie] Adjust permission schema and add support for incident actions

Is your feature request related to a problem? Please describe

The actions like closing or snoozing an alert can be enabled / disabled via the Opsgenie configuration, but they can not be controlled on a per user / team level.

In #219 we implemented a permission schema for plugins, which is already used for the Azure plugin. We should adopt this schema for the Opsgenie plugin, so that the actions can be enabled for each user / team seperatly.

Besides the adjustment of the permissions schema, we should also add actions for incidents similar to the ones for alerts. With these new actions users should be able to resolve and close alerts.

Describe the solution you'd like

The permission scheme for the Opsgenie plugin can look as follows:

---
apiVersion: kobs.io/v1beta1
kind: Team
metadata:
  name: team1
spec:
  id: [email protected]
  permissions:
    plugins:
      - name: opsgenie
        permissions:
          - closeAlert
          - snoozeAlert
          - acknowledgeAlert
          - resolveIncident
          - closeIncident

In the above example all users which are part of team1 can close, snooze and acknowledge alerts and they can resolve and close incidents.

The permissions property of a plugin contains a list of actions, which are allowed for a user / team. This way we can simply merge the actions list, when the plugin permissions are defined for multiple teams or on the user and team level.

Additional context

With the new permission handling in the Opsgenie plugin, we can unify the permission handling in plugins, which makes the permission handling easier for users.

One thing we have to consider is, that when we are using this permission model, we would remove the options to control the allowed actions, for users which are using kobs with out the auth middleware.

[core] Add Integrations

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 {

Support multiple versions for the documentation

Is your feature request related to a problem? Please describe

Currently the documentation is published every time a file in the docs folder is changed. It would be nice to support multiple versions for the documentation.

Describe the solution you'd like

When we change sth. in the main branch the documentation is published under a main tag and when we create a new tag another version for the documentation is published under the tag name (e.g. 1.0.0). This way users can view the documentation for their installed version of kobs and are not confused by new features.

This can be implemented via mike. More information regarding the setup can be found at https://squidfunk.github.io/mkdocs-material/setup/setting-up-versioning/.

Additional context

When implementing this feature we have to check if we have to delete the current files in the gh-pages branch manually or if this is done automatically.

For the GitHub Action we can use the same on keys as for the Docker image. The only disadvantage of this approach is, that the documentation is published on each commit to the main branch, also when there are no updates.

[mongodb] Run Aggregations

Is your feature request related to a problem? Please describe

I'd like to run (non-modifying) aggregation pipelines on MongoDB collections. Currently, only "find" and "count" are available

Describe the solution you'd like

In the "Query Documents" view, in the "operation" drop-down, I'd like to select the option "aggregate" and then enter an aggregation pipeline in the "query" field.

Describe alternatives you've considered

Currently, I open a shell in the mongodb container (also via kobs) and do it on the command line.

Additional context

Dashboard: Placeholder values are not getting populated to dashboard

query: container_cpu_usage_seconds_total{namespace="{{ .namespace }}", image!="", pod=~"{{ .pod }}", container!="POD", container!=""}

{{ .namespace }} and {{ .pod }} values are not getting populated after selecting from placeholder.

image

image

As per the selection query should be

"query": "container_cpu_usage_seconds_total{namespace="sct-stride-fe", image!="", pod=~".*", container!="POD", container!=""}",

[klogs-plugin] Query Syntax Validation

Is your feature request related to a problem? Please describe

I'm always frustrated when entering queries manually and actively searching, that only after I executed the search, some kind of Backend validation kicks in and "tells me" (the feedback is not really good there for a normal user) that my query input may was invalid.

Bildschirm­foto 2022-12-30 um 10 42 05

Examples for invalid data:

  • attribute_foo="bar" (wrong quotes)
  • a='42' _and_ (foo='bar' (missing bracket)

Describe the solution you'd like

Some basic query syntax validation to prevent errors and give better feedback to the user

Describe alternatives you've considered

none

Additional context

[app] Customize Navigation Bar

Is your feature request related to a problem? Please describe

Currently we are always showing the Applications, Topology, Teams, Kubernetes Resources and Plugins in the navigation bar. It would be nice to allow users to customize this.

Describe the solution you'd like

An administrator of kobs should able to add additional items to the navigation bar via the hub configuration file. For that he should be able to define to define groups (NavGroup) and item (NavItem) which are pointing to dashboards. It should be possible to nest the navigation items, so that the sub items are shown in a flyout.

It should only be possible to link to dashboards via the navigation bar. If a user wants to link to a specific plugin it would be better to introduce an application launcher.

[klogs-plugin] Query History

Is your feature request related to a problem? Please describe

I'm always frustrated when heavily using Klogs that it does not recognize the past queries that I used for searching.

Describe the solution you'd like

Some kind of Query History that saves the last X (e.g. 10) queries that I used in Klogs.
In the context of the Klogs input field I have some option to select (or better: match) from a list of my past queries (if there are some), select one - and that query gets automatically set as input for the Klogs search.

Describe alternatives you've considered

Manually saving Klogs queries on my computer

Additional context

[istio] Istio Plugin

Is your feature request related to a problem? Please describe.

Currently we can view the Istio metrics in kobs via the Prometheus or Kiali plugin. It would be nice to have another view where we can see the success rate, request per seconds and the latency for each application in a table view. This table can be filtered by namespace and when an application is selected, we got the details for this application.

Describe the solution you'd like

Similar to the other plugins a new Istio plugin can be created. Each instance of the plugin can then be configured with the name of a Prometheus instance from which we retrieve the relevant information. It is also possible to add a logging plugin (ClickHouse or Elasticsearch) to also see the access logs from Istio and a Jaeger instance.

With this configuration we can directly call the Prometheus, ClickHouse or Jaeger plugin from the frontend or we can pass the configured instances to the Istio configuration on the backend side and proxy the requests there.

The frontend of the plugin is a simple table with the following columns: Application, Success Rate (SR), Requests per Second (RPS), P50 Latency, P95 Latency, P99 Latency. This table can be filtered by a list of namespaces. When a row from the table is selected the user will be redirected to the corresponding details page, where he can see the same metrics for each Pod of the application.

Besides that it would also be good to have the Kiali graph for the selected application, where we can see the mentioned metrics for all the inbound and outbound requests from/to other services.

In further steps we can also show the access logs for the application and the traces on this page or add them as links for the corresponding plugins.

Describe alternatives you've considered

We can build something similar via Dashboards, but there we are limited in the options. For that an additional plugin for Istio would be really useful.

Additional context

The Linkerd dashboard is very good and sth. similar would be awsome: https://linkerd.io/2.10/features/dashboard/. Another good example can be found in the following blog post: https://banzaicloud.com/blog/backyards-traffic-tap/.

[alertmanager] Add Alertmanager Plugin

Is your feature request related to a problem? Please describe

It would be nice to have an overview of all open alerts from an Alertmanager instance. The plugin should support a similar feature set like the Opsgenie plugin.

Describe the solution you'd like

It should be possible to view all open and silenced alerts from a configured Alertmanager instance. A user should also be able to filter the list of shown alerts and to silence an alert via kobs.

For the silence alert function, the plugin should use a similar logic like the Opsgenie plugin, this means:

  • When a user silences an alert, the name of the user should be added.
  • The plugin should have a permissions section, were we can define if a user is allowed to silence alerts.

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.