GO 2 Hal is a devops automation telegram bot which automates a number of repetitive tasks, while also providing the team with insight into your systems.
The bot consists of a number of individual models, so if you want to create your own bot, its as simple as creating your main.go and choosing the modules.
the main.go provided here uses all the modules, wrapped in gokit proetheus instrumenting and gokit logging.
Refer to the readme.md for each Module
Simply Configure the environment variables and execute main.go
At present, HAL uses Mongo has its datastore.
BOT_KEY - The key from botfather. Required.
If Mongo is running on localhost via the standard port and no authentiation, then the mongo environment variables has be left blank
If you want to instrument your application with Amazon AWS Xray
- XRAY_URL - XRAL Daemon URL. Optional
- XRAY_SAMPLING_RULES - Location of a XRay Sampling JSON File. Optional
Reffer to the README.md within each of the subdirectories for more details on the module
Provides a service to send telegram messages and images to groups
Extends upon the Telegram Service to abstract the taget group of a message. Curently the following resful services are provided.
- Alert Messages
- Alert Images
- Error Messages
- Error Images
Allows App Dyanmics to send alert messages Monitor MQ Queues via App Dynamics Execute commands based on App Dynamics Alerts
Invoke Callout by quering a web app to see who is on callout sends SNMP traps creates JIRA tickets
Alows Chef Delivery to send Alerts Get Nodes based upon recipe and environment
Mongo Database capability
Some common gokit wrappers
a wrapper to make writting of selenium tests easier
monitor http endpoints and alert when the endpoints fail
create JIRA tickets
Sample files to deploy the bot in kubernetes
allows a remote program to register a telegram command, for example "/someCommand", on the bot. When the command is executed a grpc call is made back to the system that requetsed the command.
periodically execute the selenium tests and alert on error
Handle sensu alerts
an internal module to rebuild nodes
Send SNMP alerts
execute SSH commands on a remote server fetch data via SFTP