{"id":28501976,"url":"https://github.com/fluent/fluent-bit-chatops-demo","last_synced_at":"2025-07-05T01:30:38.472Z","repository":{"id":227533442,"uuid":"766154019","full_name":"fluent/fluent-bit-chatops-demo","owner":"fluent","description":"Demo of using Fluent Bit for ChatOps","archived":false,"fork":false,"pushed_at":"2025-03-26T13:36:09.000Z","size":4878,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-06-08T16:08:34.899Z","etag":null,"topics":["cloud-native-rejekts","osmc"],"latest_commit_sha":null,"homepage":"","language":"Java","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/fluent.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-02T13:42:26.000Z","updated_at":"2025-03-26T13:36:13.000Z","dependencies_parsed_at":"2024-03-13T20:52:35.856Z","dependency_job_id":"401fec1d-735d-41c5-b536-b5aae3c2fbaf","html_url":"https://github.com/fluent/fluent-bit-chatops-demo","commit_stats":null,"previous_names":["fluent/fluent-bit-chatops-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fluent/fluent-bit-chatops-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-bit-chatops-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-bit-chatops-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-bit-chatops-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-bit-chatops-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluent","download_url":"https://codeload.github.com/fluent/fluent-bit-chatops-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-bit-chatops-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263642845,"owners_count":23493649,"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":["cloud-native-rejekts","osmc"],"created_at":"2025-06-08T16:08:40.205Z","updated_at":"2025-07-05T01:30:38.466Z","avatar_url":"https://github.com/fluent.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\nThis repository was used as the basis for two talks at [Cloud Native Rejects Paris 2024](https://cfp.cloud-native.rejekts.io/cloud-native-rejekts-eu-paris-2024/talk/LXXPWR/) and [Open Source Monitoring Conference 2024](https://osmc.de/talks/fluent-bit-the-engine-to-power-chat-ops/).\n\nThe demo for [Cloud Native Rejects Paris 2024 talk](https://cfp.cloud-native.rejekts.io/cloud-native-rejekts-eu-paris-2024/talk/review/PP8T37LPQUSTTRWBXVCHFJSSKDM9B98J).\n\nThe [actual presentation is available in this repo](./docs/Fluent_Bit_for_ChatOps-Cloud_Native_Rejekts_EU_2024.pdf).\n\nVideos covering the demo are here:\n\n* [Demo](https://chronosphere-io.zoom.us/rec/share/acwg8ZR0Laoj7p9GlzBWSmJRTEXoNlGicYIxNPNKvVsey6NvtU44oiReTbmHKWMf.8GMEIpjA2d5pX5rZ?startTime=1710415864000\u0026pwd=LGnKSo-mzFXroR5H04BcVUmoWRFzge4f)\n* [Code overview](https://chronosphere-io.zoom.us/rec/share/acwg8ZR0Laoj7p9GlzBWSmJRTEXoNlGicYIxNPNKvVsey6NvtU44oiReTbmHKWMf.8GMEIpjA2d5pX5rZ?startTime=1710416213000\u0026pwd=LGnKSo-mzFXroR5H04BcVUmoWRFzge4f)\n\nThis contains all the resources to build a demo-able ChatOps solution using Slack and Fluent Bit.\n\n* all the details are in the [docs](./docs/readme.md) and the specific build docs are in [docs/buildme.md](./docs/buildme.md)\n* [fluent-bit-config](./fluent-bit-config/) has the Fluent Bit configuration\n* [src](./src/) with all the Java code build with [Helidon](https://helidon.io/).\n\nCreate a `.env` file with the following secrets/config set up:\n\n```shell\nSLACK_TOKEN=xoxb-XXX\nSLACK_CHANNEL_ID=XXX\nSLACK_CHANNEL_NAME=XXX\nSLACK_WEBHOOK=https://hooks.slack.com/services/XXX\n\nOPS_RETRYINTERVAL=10\nOPS_RETRYCOUNT=18\nTESTFLB=FALSE\nSYNTH_ALERT_PORT=\n```\n\nOnce this is done, just run up `docker compose up` to start sending an alert and responding.\n\nOnce running, you will see a report of an issue like so and can tell it to fix it up:\n\n![Example chatops slack responses](./docs/slack_example.png)\n\nSpecify a command to run using the syntax `FLBNode:\u003cHostname\u003e:\u003cPort\u003e FLBCmd:\u003cCommand\u003e`, this syntax is arbitrary and just an example for usage in the demo.\n\n```shell\nFLBNode:node1:8090 FLBCmd:fix_permissions\n```\n\nThe command will show you it is running (just a dummy here as an example):\n\n```shell\nnode1-1              | [0] alert: [[1731410091.996160421, {}], {\"ERROR\"=\u003e\"testfile.txt has incorrect permissions\"}]\n...\nhttp-slack-server-1  | 2024.11.12 11:15:24 INFO com.oracle.flb.chatops.FLBSocialCommandResource VirtualThread[#63,[0x4de53a24 0x79177571] WebServer socket]/runnable@ForkJoinPool-1-worker-4: Actioning:\nhttp-slack-server-1  | {\"isOk\" : \"true\", \"command\":\"fix_permissions\", \"FLBNode\"=\"node1:8090\"}\nhttp-slack-server-1  | 2024.11.12 11:15:24 INFO com.oracle.flb.chatops.FLBSocialCommandResource VirtualThread[#63,[0x4de53a24 0x79177571] WebServer socket]/runnable@ForkJoinPool-1-worker-4: Thread : [0x4de53a24 0x79177571] WebServer socket ending \u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\nnode1-1              | [2024/11/12 11:15:24] [ info] [output:http:http.1] http-slack-server:8080, HTTP status=200\nnode1-1              | {postAlertNoId= 11-14-53}\nnode1-1              | {\nnode1-1              |   command = \"fix_permissions\",\nnode1-1              |   tagged = \"11-14-53\",\nnode1-1              |   time = \"11-15-24\",\nnode1-1              |   \u003cmetatable\u003e = {\nnode1-1              |     type = 2\nnode1-1              |   }\nnode1-1              | }\nnode1-1              | Will execute fix_permissions\nnode1-1              | running: /fluent-bit/etc/cmd_fix_permissions.sh \u003e /logs//remoteCommand.lua.out\nnode1-1              | [0] command: [[1731410124.293250380, {}], {\"command\"=\u003e\"fix_permissions\", \"time\"=\u003e\"11-15-24\", \"tagged\"=\u003e\"11-14-53\"}]\nnode1-1              | [2024/11/12 11:15:24] [ info] [input:tail:tail.3] inotify_fs_add(): inode=2 watch_fd=1 name=/logs//remoteCommand.lua.out\nnode1-1              | [0] results: [[1731410124.999926256, {}], {\"log\"=\u003e\"chmod a+w testfile.txt\"}]\n...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluent%2Ffluent-bit-chatops-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluent%2Ffluent-bit-chatops-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluent%2Ffluent-bit-chatops-demo/lists"}