{"id":19380517,"url":"https://github.com/margostino/amplifix","last_synced_at":"2026-04-14T04:31:06.962Z","repository":{"id":81877422,"uuid":"227416516","full_name":"margostino/amplifix","owner":"margostino","description":"Java toolkit (with Demo Service) built on top of Micrometer to provides a declarative and simpler way to build and expose metrics from any Java service.","archived":false,"fork":false,"pushed_at":"2022-03-23T14:37:47.000Z","size":56029,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-18T04:25:59.928Z","etag":null,"topics":["grafana","hazelcast","metrics","micrometer","spring","spring-boot","vertx"],"latest_commit_sha":null,"homepage":"https://margostino.com","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/margostino.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,"governance":null}},"created_at":"2019-12-11T16:55:43.000Z","updated_at":"2025-06-06T14:30:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"14b60c62-198c-409a-afda-76f2f398584d","html_url":"https://github.com/margostino/amplifix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/margostino/amplifix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/margostino%2Famplifix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/margostino%2Famplifix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/margostino%2Famplifix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/margostino%2Famplifix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/margostino","download_url":"https://codeload.github.com/margostino/amplifix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/margostino%2Famplifix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31782736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["grafana","hazelcast","metrics","micrometer","spring","spring-boot","vertx"],"created_at":"2024-11-10T09:14:06.641Z","updated_at":"2026-04-14T04:31:06.947Z","avatar_url":"https://github.com/margostino.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- TABLE OF CONTENTS --\u003e\n## Table of Contents\n\n* [About the Project](#about-the-project)\n  * [Built With](#built-with)\n* [Getting Started](#getting-started)\n  * [Prerequisites](#prerequisites)\n  * [Installation](#installation)\n* [Usage](#usage)\n* [Roadmap](#roadmap)\n* [Contributing](#contributing)\n* [License](#license)\n\n## About The Project\n\n![architecture](./documentation/images/architecture.png#center)\n\nAmplifix is Java toolkit built on top of [Micrometer](https://micrometer.io/) to provide a declarative and simpler way to build and expose metrics from any Java service (not necessarily RESTful API). This toolkit is framework agnostic. You can use it together with Spring, Dropwizard, Vertx, or many others.\n\nThe main motivation is to isolate the metric handling from any service which only should care of business logic.\nThe build and posting happen asyncronous using a [Vertx Event Bus](https://vertx.io/docs/vertx-core/java/).\n\nThe idea behind is to enable the developer a simple way to declare and publish metrics to the choice monitoring service (Datadog, Grafana, etc.). The toolkit follows the [OpenMetric](https://github.com/OpenObservability/OpenMetrics) standard for transmitting metrics at scale.\n\nThe developer needs to concentrate energy in business logic. Metrics handling should be automated extracting values from events and processing them in a standard format in asyncronous fashion. The only thing the developer should do is (in every desired place):\n\n```\neventBus.send(event)\n```\n\nUnder the wood the toolkit needs to underderstand the source, the type of metric and the values required.\n\n**IMPORTANT:** This project is an experiment and it is in continuous progress, adding, changing features and evaluating performance and new functionalities. Once this toolkit is stable, and with a bounded scope, the first version will be properly released and documented. So it should not be used in Production environments.\n\n### Built With\nThe toolkit is built on top of [Micrometer](https://micrometer.io/) and uses [Vertx](https://vertx.io) to enable the event bus along the service.\nAlso it uses [Hazelcast](https://hazelcast.com) to allow building complex metric such as conversion rate given an event (more info is coming...).\n\n\n## Getting Started\n\nThis repo includes 3 projects:\n* [Amplifix Toolkit](https://github.com/margostino/amplifix/tree/master/toolkit)\n* [Demo Spring RESTful API](https://github.com/margostino/amplifix/tree/master/demo-spring)\n* [Demo Vertx RESTful API](https://github.com/margostino/amplifix/tree/master/demo-vertx)\n\nThe [Makefile ](https://github.com/margostino/amplifix/blob/master/Makefile) includes all commands available to build the toolkit, the demo, integrate both and run in a docker enviroment with all the dependendencies by default to test the functionalities.\n\n#### Showcase dependencies:\n\n* Prometheus: as default monitoring tool.\n* Grafana: as default metrics visualization service.\n* Nginx: as default load balancer to distribute requests to the Demo which runs in a (small) cluster of 2 instances.\n* Hazelcast (management-center): in-memory data grid to monitor and manage your cluster members running Hazelcast IMDG by the toolkit.\n\n#### (1) If you want to run all in one:\n\n\u003cbr/\u003e\n\n##### Run Spring Demo:\n```\nmake start-spring\n```\n\n##### Run Vertx Demo:\n```\nmake start-vertx\n```\n\n#### (2) If you want to build and run separately:\n\n\u003cbr/\u003e\n\n##### Build Toolkit:\n```\nmake build-toolkit\n```\n\n##### Build Spring Demo:\n```\nmake build-spring\n```\n\n##### Build Vertx Demo:\n```\nmake build-vertx\n```\n\n##### Run Demo (either Spring or Vertx):\n```\nmake run\n```\n\n### Prerequisites\n\nThe tookit runs with Java 8 and the Showcase enviroments also need Docker in place.\n\n## Usage\n\nOnce the showcase dependencies are up running:\n\n![docker-showcase](./documentation/images/docker-showcase.png#center)\n\nRun the flow generator command to perform N request against the Demo:\n\n```\nmake generate-flow max=10 port=5000\n```\n\nThe port parameter is where the Demo Service is listening.\n\n\nVisualize the metrics in OpenMetric format:\n```\nhttp://localhost:5000/metrics\n```\n\n![openmetrics](./documentation/images/openmetrics.png#center)\n\nVisualize the default dashboard with metrics in Grafana:\n```\nhttp://localhost:3000\n```\n\n![grafana](./documentation/images/grafana.png#center)\n\nManage the Hazelcast IMDG cluster:\n\n```\nhttp://localhost:8080/hazelcast-mancenter/dev\n```\n\n![hazelcast-mancenter](./documentation/images/hazelcast-mancenter.png#center)\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n[coming soon...]\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\n[coming soon...]\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under Apache License. See [LICENSE](https://github.com/margostino/amplifix/blob/master/LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmargostino%2Famplifix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmargostino%2Famplifix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmargostino%2Famplifix/lists"}