send sql results periodically to slack
299
a cron deamon that executes the specified sql query and forward its result to slack ()
job tst {
// slack-channel webhook url
channel = "https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxx"
// which sql driver do you use?
driver = "mysql"
// data source name (connection string)
dsn = "root:root@tcp(127.0.0.1:3306)/dbname"
// the query this is a multiline example, you can just write the following
// query = "select * from users"
query = <<SQL
SELECT users.* FROM users;
SQL
// cron like syntax
schedule = "* * * * *"
// here you need to build the text message that will be sent
// to the slack channel.
// -------
// say(....): a function that will append the specified arguments into the main slack text message.
// log(....): a logger function, for debugging purposes.
// $rows: a variable that holds the output of the query execution.
message = <<JS
if ( $rows.length < 1 ) {
return
}
say("there are (", $rows.length, ") new users!")
say("users list is:")
_.chain($rows).pluck('name').each(function(name){
say("- ", name, " .")
})
JS
}
Create New App.Incoming Webhooks and activate it.Add New Webhook to Workspace and follow the instructions.| Driver | DSN |
|---|---|
mysql | usrname:password@tcp(server:port)/dbname?option1=value1&... |
postgres | postgresql://username:password@server:port/dbname?option1=value1 |
sqlserver | sqlserver://username:password@host/instance?param1=value¶m2=value |
sqlserver://username:password@host:port?param1=value¶m2=value | |
sqlserver://sa@localhost/SQLExpress?database=master&connection+timeout=30 | |
mssql | server=localhost\\SQLExpress;user id=sa;database=master;app name=MyAppName |
server=localhost;user id=sa;database=master;app name=MyAppName | |
odbc:server=localhost\\SQLExpress;user id=sa;database=master;app name=MyAppName | |
odbc:server=localhost;user id=sa;database=master;app name=MyAppName | |
clickhouse | tcp://host1:9000?username=user&password=qwerty&database=clicks&read_timeout=10&write_timeout=20&alt_hosts=host2:9000,host3:9000 |
sqlite3 | /path/to/sqlite/file.sqlite |
sql2slack uses the current working directory as jobs files source, you can override that using --jobs-dir flag..s2s.hcl suffix.Content type
Image
Digest
Size
6.7 MB
Last updated
about 6 years ago
docker pull alash3al/sql2slack