{"id":13397814,"url":"https://github.com/scobal/seyren","last_synced_at":"2025-03-14T00:32:42.462Z","repository":{"id":3138895,"uuid":"4167742","full_name":"scobal/seyren","owner":"scobal","description":"An alerting dashboard for Graphite","archived":false,"fork":false,"pushed_at":"2022-12-16T01:42:14.000Z","size":1946,"stargazers_count":859,"open_issues_count":60,"forks_count":220,"subscribers_count":59,"default_branch":"master","last_synced_at":"2024-12-06T19:22:39.048Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scobal.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}},"created_at":"2012-04-28T14:33:37.000Z","updated_at":"2024-10-22T21:16:15.000Z","dependencies_parsed_at":"2023-01-11T16:14:36.368Z","dependency_job_id":null,"html_url":"https://github.com/scobal/seyren","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scobal%2Fseyren","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scobal%2Fseyren/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scobal%2Fseyren/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scobal%2Fseyren/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scobal","download_url":"https://codeload.github.com/scobal/seyren/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243505027,"owners_count":20301541,"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-07-30T18:01:46.660Z","updated_at":"2025-03-14T00:32:42.454Z","avatar_url":"https://github.com/scobal.png","language":"Java","readme":"\u003cimg src=\"http://i.imgur.com/Ae5gQJZ.png\" height=\"45\" width=\"200\" /\u003e\n\nSeyren ([/ˈsaɪ.rʌn/](http://en.wikipedia.org/wiki/Wikipedia:IPA_for_English#Key)) is an alerting dashboard for Graphite. It supports the following notification channels:\n\n* [Email](http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol),\n[Flowdock](https://www.flowdock.com),\n[HipChat](https://www.hipchat.com),\n[HTTP](http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol),\n[Hubot](http://hubot.github.com),\n[IRCcat](https://github.com/RJ/irccat),\n[PagerDuty](http://www.pagerduty.com),\n[Pushover](https://pushover.net),\n[SLF4J](http://www.slf4j.org),\n[Slack](https://www.slack.com),\n[SNMP](http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol),\n[Twilio](https://www.twilio.com/)\n\n\n#[\u003cimg src=\"http://i.imgur.com/13nR3YA.png\" height=\"200\" width=\"280\" /\u003e](http://i.imgur.com/ahu3aM6.png)\n\n[![Build Status](https://travis-ci.org/scobal/seyren.svg?branch=master)](https://travis-ci.org/scobal/seyren)\n[![Gitter chat](https://badges.gitter.im/scobal/seyren.png)](https://gitter.im/scobal/seyren)\n\n### Prerequisites\n\n* An instance of Graphite\n* MongoDB ([Install instructions](http://docs.mongodb.org/manual/installation/#installation-guides Installing MongoDB))\n\n### Run\n\n```\nwget https://github.com/scobal/seyren/releases/download/1.5.0/seyren-1.5.0.jar\nexport GRAPHITE_URL=http://graphite.foohost.com:80\njava -jar seyren-1.5.0.jar\nopen http://localhost:8080\n```\n\nTo run seyren on another port:\n\n```\nexport SEYREN_URL=\"http://localhost:8081/seyren\"\njava -jar seyren-1.5.0.jar -httpPort=8081\n```\n\n### Config\n\nThe following options can be supplied as system properties or environment variables.\n\n##### Base\n* `MONGO_URL` - The Mongo [connection string](http://docs.mongodb.org/manual/reference/connection-string/). Default: `mongodb://localhost:27017/seyren`\n* `SEYREN_URL` - The location of your Seyren instance. Default: `http://localhost:8080/seyren`\n* `SEYREN_LOG_PATH` - The path of seyren.log. Default: ``. If a value is set, it must end with a '/'.\n* `SEYREN_LOG_FILE_LEVEL` - The level of messages logged to the `file` appender (must correspond to a [Logback](http://logback.qos.ch/) log level. So one of `trace`, `debug`, `info`, `warn` or `error`). Default: `info`.\n* `SEYREN_THREADS` - The number of pooled check threads to start. Default: `8`\n* `GRAPHS_ENABLE` - Show(true) or hide(false) graphs in check page. Default: `true`.\n\n##### [Graphite](http://graphite.readthedocs.org/en/latest/)\n* `GRAPHITE_URL` - The location of your Graphite server. Default: `http://localhost:80`\n* `GRAPHITE_REFRESH` - The fixed period (in ms) between checks. Default: `60000`\n* `GRAPHITE_USERNAME` - The HTTP Basic auth username for the Graphite server. Default: ``\n* `GRAPHITE_PASSWORD` - The HTTP Basic auth password for the Graphite server. Default: ``\n* `GRAPHITE_KEYSTORE` - The HTTP KeyStore path for the https Graphite server. Default: ``\n* `GRAPHITE_KEYSTORE_PASSWORD` - The HTTP KeyStore password for the HTTPS Graphite server. Default: ``\n* `GRAPHITE_TRUSTSTORE` - The HTTP TrustStore path for the https Graphite server. Default: ``\n* `GRAPHITE_CONNECTION_REQUEST_TIMEOUT` - The number of millisconds to wait to obtain a connection from the pool. Default: `0` (infinite)\n* `GRAPHITE_CONNECT_TIMEOUT` - The number of milliseconds to wait to establish a connection. Default: `0` (infinite)\n* `GRAPHITE_SOCKET_TIMEOUT` - The number of milliseconds to wait for request data. Default: `0` (infinite)\n\n##### [Email](http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol)\n* `SMTP_HOST` - The smtp server to send email notifications from. Default: `localhost`\n* `SMTP_PORT` - The smtp server port. Default: `25`\n* `SMTP_FROM` - The from email address for sending out notifications. Default: `alert@seyren`\n* `SMTP_USERNAME` - The smtp server username if authenticated SMTP is used. Default: ``\n* `SMTP_PASSWORD` - The smtp server password if authenticated SMTP is used. Default: ``\n* `SMTP_PROTOCOL` - The smtp server protocol if authenticated SMTP is used. Default: `smtp`\n\n##### [HTTP]\n* `HTTP_NOTIFICATION_URL` - The url for a resource that contains a POST HTTP Method. Default: ``\n\n##### [BigPanda.io](https://bigpanda.io)\n\nUse a [Big Panda App Key](https://a.bigpanda.io/#/app/integrations/alertsapi/instructions/alertsapi) as Target when adding a new subscription.\n\n* `BIGPANDA_NOTIFICATION_URL` - The url for a resource that contains a POST HTTP Method. Default: ``\n* `BIGPANDA_AUTH_BEARER` - The Authorization Bearer header that is assigned to each customer by BigPanda. See [Alerts API integration](https://a.bigpanda.io/#/app/integrations/alertsapi/instructions/alertsapi) Default: ``\n\n##### [Flowdock](https://www.flowdock.com)\n\nUse a [Flow API token](https://www.flowdock.com/account/tokens) as Target when adding a new subscription.\n\n* `FLOWDOCK_EXTERNAL_USERNAME` - The username that messages will be sent from to a flow. Default: `Seyren`\n* `FLOWDOCK_TAGS` -  Special tags to add to all messages. Default: ``\n* `FLOWDOCK_EMOJIS` - Mapping between state and emojis unicode. Default: ``\n\n##### [HipChat](https://www.hipchat.com)\n* `HIPCHAT_AUTHTOKEN` - The hipchat api auth token. Default: ``\n* `HIPCHAT_USERNAME` - The username that messages will be sent from. Default: `Seyren Alert`\n\n##### [Hubot](http://hubot.github.com)\n* `HUBOT_URL` - The location where Hubot is running. Default ``\n\n##### [IRCcat](https://github.com/RJ/irccat)\n* `IRCCAT_HOST` - The hostname of the server where IRCcat is running. Default: `localhost`\n* `IRCCAT_PORT` - The port on which IRCcat is running. Default: `12345`\n\n##### [PagerDuty](http://www.pagerduty.com)\n* No system properties or environment variables here, but in \"Subscriptions dialog box\", set the target field with a \"Service API Key\".\nTo generate a \"Service API Key\", see [PagerDuty Support: Adding Services](https://support.pagerduty.com/hc/en-us/articles/202828730-Adding-Services), section \"Use our API directly\".\n\n##### [Pushover](https://pushover.net)\n* `PUSHOVER_APP_API_TOKEN` - Your pushover App API Token\n\n##### [Real-time metrics](https://github.com/scobal/seyren/pull/142)\n* `GRAPHITE_CARBON_PICKLE_ENABLE` - Enable a TCP server to listen Carbon relay [pickle protocol](http://graphite.readthedocs.org/en/latest/feeding-carbon.html). Default: `false`\n* `GRAPHITE_CARBON_PICKLE_PORT` - The TCP server port. Default: `2004`\n\n##### [Slack](https://www.slack.com)\n\nThe target for a Slack subscription will be the channel name (including the `#`, for example `#channel`). You can optionally suffix the channel name with `!` and that will cause the alerts to include a `@channel` mention (for example `#channel!`).\n\n* `SLACK_TOKEN` - The Slack api auth token. Default: ``\n* `SLACK_USERNAME` - The username that messages will be sent to slack. Default: `Seyren`\n* `SLACK_ICON_URL` - The user icon URL. Default: ``\n* `SLACK_EMOJIS` - Mapping between state and emojis unicode. Default: ``\n\n##### [SNMP](http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol)\n* `SNMP_HOST` - The SNMP host. Default: `localhost`\n* `SNMP_PORT` - The SNMP port. Default: `162`\n* `SNMP_COMMUNITY` - The SNMP  community. Default: `public`\n* `SNMP_OID` - The SNMP OID. Default: `1.3.6.1.4.1.32473.1`\n\n##### [TEMPLATE](http://en.wikipedia.org/wiki/Apache_Velocity)\n* `TEMPLATE_EMAIL_FILE_PATH` - The path to the velocity template used when emailing an alert. Seyren will first attempt to load from the class path, but will fall back to loading from the filesystem.  Default: `com/seyren/core/service/notification/email-template.vm\"`\n* `TEMPLATE_EMAIL_SUBJECT_FILE_PATH` - The path to the velocity template used for subject when emailing an alert. Seyren will first attempt to load from the class path, but will fall back to loading from the filesystem.  Default: `com/seyren/core/service/notification/email-subject-template.vm\"`\n\n##### [Twilio](https://www.twilio.com/)\n* `TWILIO_ACCOUNT_SID` - The Twilio Account SID. Default ``\n* `TWILIO_AUTH_TOKEN` - The Twilio Auth Token. Default ``\n* `TWILIO_PHONE_NUMBER` - The Twilio phone number to use to send SMS. Default ``\n* `TWILIO_URL` - The Twilio API URL. Mostly useful for testing. Default `https://api.twilio.com/2010-04-01/Accounts`\n\n##### [Victorops](https://www.victorops.com/)\n* `VICTOROPS_REST_ENDPOINT` - The REST Endpoint given by Victorops. See [REST Integration]( http://victorops.force.com/knowledgebase/articles/Integration/Alert-Ingestion-API-Documentation/) Default ``\n\n##### [Proxy](http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/HttpClientBuilder.html#useSystemProperties())\nThe Proxy settings are changed by using JAVA_OPTS. It important that you exclude your graphite server or you will proxy these requests also.\n* `JAVA_OPTS Example` JAVA_OPTS=\"-server -Dhttps.proxyHost=`PROXYSERVER` -Dhttps.proxyPort=`PROXYPORT` -Dhttp.proxyHost=`PROXYSERVER` -Dhttp.proxyPort=`PROXYPORT` -Dhttp.nonProxyHosts=`GRAPHITESERVER|*YOURDOMAIN.COM|INTERNALHIPCHAT`\"\n\n## Seyren API\n\nSee [Seyren API](API.md)\n\n## Chef\n\nYou can use [Seyren Cookbook](https://github.com/obazoud/chef-seyren) to deploy Seyren with [Chef](http://www.getchef.com/).\n\n## Docker\nYou can use the [Docker Seyren Image](https://registry.hub.docker.com/u/usman/docker-seyren/) to deploy a seyren instance in a [docker](https://docker.com) container.\n\n## Docker compose\nYou can use `docker-compose` to create containers and hack seyren.\nFirst, you need to install [Docker and Docker Compose](https://docs.docker.com/compose/#installation-and-set-up).\nThen, you just need to start Docker Compose:\n```\ndocker-compose up\n```\nand open [http://localhost:8080/seyren](http://localhost:8080/seyren).\nGraphite is available on [http://localhost:8081/](http://localhost:8081/) with Basic Auth guest/guest.\n\n## Init script\n\n[Seyren-Init](https://github.com/wingZero21/Seyren-Init) is an init.d script which allows you to start the service.\n\n## Development\n\n[![Build Status](https://secure.travis-ci.org/scobal/seyren.png?branch=master)](http://travis-ci.org/scobal/seyren)\n\nTo run the acceptance tests with Maven:\n\n```\nmvn clean verify\n```\nTo run the integration tests with Maven:\n\n```\nmvn clean verify -Pkarma\n```\n\nTo fire-up the app using Maven and wait (meaning you can run the tests separately from your IDE):\n\n```\nmvn clean verify -Dwait\n```\n\nYou should then be able to browse to `http://localhost:8080/seyren` and have a play.\n\nTo package up a new jar file without running the tests:\n\n```\nmvn package -DskipTests\n# Set environment variables as needed.\njava -jar seyren-web/target/seyren-web-*-war-exec.jar\n```\n\n## Related projects\n\n* [Cerebro](https://github.com/voyages-sncf-technologies/cerebro) - Open alerting platform over Graphite (timeseries) and Seyren (scheduling)\n","funding_links":[],"categories":["Java","9. Processing and Analyze and Act","Monitoring","Alerting","VI. Program languages and applications that were written with Java"],"sub_categories":["Alerts","5. Opensource applications that were written with Java"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscobal%2Fseyren","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscobal%2Fseyren","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscobal%2Fseyren/lists"}