{"id":20337317,"url":"https://github.com/expediadotcom/haystack-logback-metrics-appender","last_synced_at":"2026-06-07T17:31:34.288Z","repository":{"id":57719180,"uuid":"110732101","full_name":"ExpediaDotCom/haystack-logback-metrics-appender","owner":"ExpediaDotCom","description":"A logback appender that sends an error count to a graphite endpoint","archived":false,"fork":false,"pushed_at":"2018-12-28T21:37:54.000Z","size":75,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-01-14T17:30:38.662Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ExpediaDotCom.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":"2017-11-14T19:01:42.000Z","updated_at":"2018-12-28T21:33:39.000Z","dependencies_parsed_at":"2022-08-26T09:41:31.695Z","dependency_job_id":null,"html_url":"https://github.com/ExpediaDotCom/haystack-logback-metrics-appender","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaDotCom%2Fhaystack-logback-metrics-appender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaDotCom%2Fhaystack-logback-metrics-appender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaDotCom%2Fhaystack-logback-metrics-appender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ExpediaDotCom%2Fhaystack-logback-metrics-appender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ExpediaDotCom","download_url":"https://codeload.github.com/ExpediaDotCom/haystack-logback-metrics-appender/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241860012,"owners_count":20032318,"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-11-14T21:08:36.819Z","updated_at":"2026-06-07T17:31:34.230Z","avatar_url":"https://github.com/ExpediaDotCom.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Coverage Status](https://coveralls.io/repos/github/ExpediaDotCom/haystack-logback-metrics-appender/badge.svg?branch=master)](https://coveralls.io/github/ExpediaDotCom/haystack-logback-metrics-appender?branch=master)\n[![Build Status](https://travis-ci.org/ExpediaDotCom/haystack-logback-metrics-appender.svg?branch=master)](https://travis-ci.org/ExpediaDotCom/haystack-logback-metrics-appender)\n# haystack-logback-metrics-appender\nA logback appender that sends an error count to a graphite endpoint\n\n## Overview\nTo facilitate counting errors and alarming when they occur, this package contains a\n[Logback](https://logback.qos.ch/)\n[Appender](https://logback.qos.ch/apidocs/ch/qos/logback/core/Appender.html)\nthat sends a [Graphite](https://graphiteapp.org/)\n[plaintext protocol](http://graphite.readthedocs.io/en/latest/feeding-carbon.html#the-plaintext-protocol)\nmessage to a Graphite endpoint. The intent of this Appender is to make it easier to alarm on error messages,\nusing the [Grafana](https://grafana.com/) [alert notifications](http://docs.grafana.org/alerting/notifications/),\nor a similar metrics-based mechanism.\n\n### Metric Message Format\nGraphite plain text protocol messages are of the form `\u003cname\u003e \u003cvalue\u003e \u003ctimestamp\u003e` where `\u003cname\u003e` is typically a\nperiod-delimited String, `\u003cvalue\u003e` is a number (either integer or floating point) and `\u003ctimestamp\u003e` is a Linux epoch\nstyle number (milliseconds since January 1, 1970, midnight GMT). The format of the `\u003cname\u003e` created by\n[EmitToGraphiteLogbackAppender](https://github.com/ExpediaDotCom/haystack-logback-metrics-appender/blob/master/src/main/java/com/expedia/www/haystack/metrics/appenders/logback/EmitToGraphiteLogbackAppender.java)\nis used in the data.influxdb.templates array [here](https://github.com/ExpediaDotCom/haystack/blob/master/deployment/k8s/addons/1.6/monitoring/influxdb.yaml#L91)\nand is of the following format:\n\n```haystack.errors.\u003csubsystem\u003e.\u003cfully-qualified-class-name\u003e.\u003cserver\u003e.\u003clineNumber\u003e.\u003cERROR_TYPE\u003e_\u003csuffix\u003e```\n\nwhere \n* `\u003csubsystem\u003e` is the name of the subsystem (like `pipes`, `collector`, etc.).\n* `\u003cfully-qualified-class-name\u003e` is something like `com-foo-MyClass` (`com.foo` is the package, `MyClass` is the name of\nthe class, and all the periods in the package have been replaced by hyphens).\n* `\u003cserver\u003e` is the name of the server where the error occurred.\n* `\u003clineNumber\u003e` is the line number in MyClass.java or MyClass.scala where the call to log the error was made.\n* `ERROR_TYPE` is either `ERROR` or `FATAL`.\n* `\u003csuffix\u003e` is TODO list the metric suffixes added by Servo.\n\n### Building\nSimply run `mvn clean package` from the root directory of the cloned repository.\n\n### Releases\n1. Decide what kind of version bump is necessary, based on [Semantic Versioning](http://semver.org/) conventions.\nIn the items below, the version number you select will be referred to as `x.y.z`.\n2. Update the [pom.xml](https://github.com/ExpediaDotCom/haystack-logback-metrics-appender/blob/master/pom.xml),\nchanging the version element to `\u003cversion\u003ex.y.z-SNAPSHOT\u003c/version\u003e`. Note the `-SNAPSHOT` suffix.\n3. Make your code changes, including unit tests. This package requires 100% unit test code coverage for the build to \nsucceed.\n4. Update the\n[ReleaseNotes.md]((https://github.com/ExpediaDotCom/haystack-logback-metrics-appender/blob/master/ReleaseNotes.md))\nfile with details of your changes.\n5. Create a pull request with your changes.\n6. Ask for a review of the pull request; when it is approved, the Travis CI build will upload the resulting jar file\nto the [SonaType Staging Repository](https://oss.sonatype.org/#stagingRepositories).\n7. Tag the build with the version number: from a command line, executed in the root directory of the project:\n```\ngit tag x.y.z\ngit push --tags\n```\nThis will cause the jar file to be released to the \n[SonaType Release Repository](https://oss.sonatype.org/#nexus-search;quick~haystack-logback-metrics-appender).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpediadotcom%2Fhaystack-logback-metrics-appender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpediadotcom%2Fhaystack-logback-metrics-appender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpediadotcom%2Fhaystack-logback-metrics-appender/lists"}