{"id":13524045,"url":"https://github.com/AliyunContainerService/kube-eventer","last_synced_at":"2025-04-01T02:30:43.339Z","repository":{"id":35588159,"uuid":"191912898","full_name":"AliyunContainerService/kube-eventer","owner":"AliyunContainerService","description":"kube-eventer emit kubernetes events to sinks ","archived":false,"fork":false,"pushed_at":"2024-08-22T09:38:24.000Z","size":20742,"stargazers_count":993,"open_issues_count":42,"forks_count":275,"subscribers_count":26,"default_branch":"master","last_synced_at":"2024-08-22T10:56:32.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AliyunContainerService.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-14T09:13:20.000Z","updated_at":"2024-08-20T10:23:31.000Z","dependencies_parsed_at":"2024-01-13T16:22:52.005Z","dependency_job_id":"22299f5b-d119-427d-863a-87c2b19376ca","html_url":"https://github.com/AliyunContainerService/kube-eventer","commit_stats":{"total_commits":185,"total_committers":38,"mean_commits":4.868421052631579,"dds":0.7081081081081081,"last_synced_commit":"ca03be0fd5589d053867dabb388fb8e654d8ffad"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Fkube-eventer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Fkube-eventer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Fkube-eventer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Fkube-eventer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AliyunContainerService","download_url":"https://codeload.github.com/AliyunContainerService/kube-eventer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222693039,"owners_count":17024034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:06.458Z","updated_at":"2024-11-02T08:31:28.797Z","avatar_url":"https://github.com/AliyunContainerService.png","language":"Go","funding_links":[],"categories":["Go","K8S-Tools"],"sub_categories":[],"readme":"## kube-eventer    \n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"docs/logo/kube-eventer.png\" width=\"150px\" /\u003e   \n  \u003cp align=\"center\"\u003e\n    kube-eventer emit kubernetes events to sinks\n  \u003c/p\u003e\n\u003c/p\u003e\n\n### Overview \n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\n[![Build Status](https://travis-ci.org/AliyunContainerService/kube-eventer.svg?branch=master)](https://travis-ci.org/AliyunContainerService/kube-eventer)\n[![Codecov](https://codecov.io/gh/AliyunContainerService/kube-eventer/branch/master/graph/badge.svg)](https://codecov.io/gh/AliyunContainerService/kube-eventer)    \n\nkube-eventer is an event emitter that sends kubernetes events to sinks(.e.g, dingtalk,sls,kafka and so on). The core design concept of kubernetes is state machine. So there will be `Normal` events when transfer to desired state and `Warning` events occur when to unexpected state. kube-eventer can help to diagnose, analysis and alarm problems.\n\n### Architecture diagram\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"docs/images/arch.png\" width=\"500px\" /\u003e   \n  \u003cp align=\"center\"\u003e\n    Architecture diagram of kube-eventer\n  \u003c/p\u003e\n\u003c/p\u003e   \n\n### Usage \nHere is a demo of kube-eventer with dingtalk sink. Dingtalk is an All-in-one Mobile Workplace like slack. Dingtalk sink can get kubernetes events from eventer. You can do chatops with it. Try it following the steps below.     \n\n0. Get dingtalk token \nAdd a chatbot in a dingtalk group and get bot token.   \n\u003cimg width=600px src=\"docs/images/token.png\"/\u003e    \n \n1. Install eventer and configure sink \n```\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    name: kube-eventer\n  name: kube-eventer\n  namespace: kube-system\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: kube-eventer\n  template:\n    metadata:\n      labels:\n        app: kube-eventer\n      annotations:\t\n        scheduler.alpha.kubernetes.io/critical-pod: ''\n    spec:\n      dnsPolicy: ClusterFirstWithHostNet\n      serviceAccount: kube-eventer\n      containers:\n        - image: registry.aliyuncs.com/acs/kube-eventer:v1.2.7-ca03be0-aliyun\n          name: kube-eventer\n          command:\n            - \"/kube-eventer\"\n            - \"--source=kubernetes:https://kubernetes.default\"\n            ## .e.g,dingtalk sink demo\n            - --sink=dingtalk:[your_webhook_url]\u0026label=[your_cluster_id]\u0026level=[Normal or Warning(default)]\n          env:\n          # If TZ is assigned, set the TZ value as the time zone\n          - name: TZ\n            value: \"Asia/Shanghai\" \n          volumeMounts:\n            - name: localtime\n              mountPath: /etc/localtime\n              readOnly: true\n            - name: zoneinfo\n              mountPath: /usr/share/zoneinfo\n              readOnly: true\n          resources:\n            requests:\n              cpu: 100m\n              memory: 100Mi\n            limits:\n              cpu: 500m\n              memory: 250Mi\n      volumes:\n        - name: localtime\n          hostPath:\n            path: /etc/localtime\n        - name: zoneinfo\n          hostPath:\n            path: /usr/share/zoneinfo\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: kube-eventer\nrules:\n  - apiGroups:\n      - \"\"\n    resources:\n      - configmaps\n      - events\n    verbs:\n      - get\n      - list\n      - watch\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: kube-eventer\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: kube-eventer\nsubjects:\n  - kind: ServiceAccount\n    name: kube-eventer\n    namespace: kube-system\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: kube-eventer\n  namespace: kube-system\n```\n2. View events in dingtalk\n\u003cimg width=600px src=\"docs/images/dingtalk.jpeg\"/\u003e\n\n### Sink Configure \nSupported Sinks:\n\n| Sink Name                    | Description                       |\n| ---------------------------- | :-------------------------------- |\n| \u003ca href=\"docs/en/dingtalk-sink.md\"\u003edingtalk\u003c/a\u003e      | sink to dingtalk bot              |\n| \u003ca href=\"docs/en/sls-sink.md\"\u003esls\u003c/a\u003e           | sink to alibaba cloud sls service |\n| \u003ca href=\"docs/en/elasticsearch-sink.md\"\u003eelasticsearch\u003c/a\u003e | sink to elasticsearch             |\n| \u003ca href=\"docs/en/honeycomb-sink.md\"\u003ehoneycomb\u003c/a\u003e     | sink to honeycomb                 |\n| \u003ca href=\"docs/en/influxdb-sink.md\"\u003einfluxdb\u003c/a\u003e      | sink to influxdb                  |\n| \u003ca href=\"docs/en/kafka-sink.md\"\u003ekafka\u003c/a\u003e         | sink to kafka                     |\n| \u003ca href=\"docs/en/mysql-sink.md\"\u003emysql\u003c/a\u003e               | sink to mysql database           |\n| \u003ca href=\"docs/en/wechat-sink.md\"\u003ewechat\u003c/a\u003e               | sink to wechat           |\n| \u003ca href=\"docs/en/webhook-sink.md\"\u003ewebhook\u003c/a\u003e               | sink to webhook           |\n| \u003ca href=\"docs/en/mongodb-sink.md\"\u003emongodb\u003c/a\u003e               | sink to mongodb           |\n\n### Contributing \nPlease check \u003ca href=\"docs/en/CONTRIBUTING.md\" target=\"_blank\"\u003eCONTRIBUTING.md\u003c/a\u003e\n\nYou can also ask for help in our Dingtalk group.\ndingtalk group1 (full): 30612594\ndingtalk group2: 5605020816\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/dingtalk-group2.jpg\" width=300px /\u003e\n\u003c/p\u003e\n\n\n### License \nThis software is released under the Apache 2.0 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAliyunContainerService%2Fkube-eventer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAliyunContainerService%2Fkube-eventer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAliyunContainerService%2Fkube-eventer/lists"}