-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Murphy's law: "Anything that can go wrong will go wrong."
Smith's Law: "Murphy was an optimist."
"In a distributed environment, inevitably some of the many service dependencies will fail." (c) Hystrix
In modern world where complexity of systems becomes higher and higher engineers often face situations when some environmental components for some reasons goes down. This reasons varies from situation to situation: unexpected thirdparty deployments, intermediate systems contract changes, human factor etc.
What if we could track environments over time, detect, and report such situations immediately?
Environment is an open source Java tool that provides such opportunity and isn`t limited with types or count of resources and environments that are tracked, and provides extensive configuration possibilities.
- Continuously track environments and resources.
- Persists environment availability data over time.
- Provides comprehensive responsive web UI to review environments availability details over time.
- Exposes REST API to extract availability data for further post processing.
Environment monitor uses externalised configuration that is passed in form of Jar file (it environment monitor terminology this jar is called status check extension). It enables doing checks of any kind of components, like web services, html pages, data bases, any kind of business logic actions, and any others. Basically any check that can be implemented with Java can be done.
Every environment configured in status check extension receives it`s own "checks thread" that performs components verifications with defined delay.
On very basic level environment monitor consists of 3 main components:
Environment Monitor Server is the "heart" of environment monitor. It provides exposes most of environment monitor functionality:
- Contiguous environment state tracking
- Resource availability persistence and aggregation over time
- Responsive WEB UI
- RESTful WEB Services for representation and tracking of environment health over time.
Environment Monitor Server relies on Status Check Extension, where logic responsible for definition of resources & status checks should be defined.
Status check Extension can be considered as a "plugin" that each monitor consumer should implement in order to provide environment monitor with resources & logic for evaluation of their state. Status check plugin enables monitor to be customizable for any project needs including resource types, count, etc.
Storage that Monitor WAR uses for persistence of resource checks results over time.