When incidents happen, it's usually because of a change like a deploy or server configuration change, according to the Google SRE book.
Because most outages are caused by some kind of change—a new configuration, a new feature launch, or a new type of user traffic
Keeping a lot of all changes, when they happened, and what they affected is critical to helping diagnose incidents when they happen. Our Changelog feature was built exactly for this purpose.
FireHydrant has 2 concepts of a "change". The first (and most common) is "Change Event". These are a very small unit of change, such as a deploy to an environment or turning on a feature flag.
The second is just "Change". A change is a grouping of change events. Change's allow you to link a bunch of change events into one logical piece.
For example, a pull request being merged, a docker image being pushed, and a deploy to Kubernetes are all examples of individual change events, but in the end, they're all related to a single change that deploys a new feature for users. Change's are automatically generated and linked by using something we call a Change Identity. Integrations are responsible for sending this information to us and cannot at this time be added via the UI.
Adding A Change Event
Change Events are usually created from an integration (or a bot!). However, you can create them manually from the web interface as well.
To do this, click "Infrastructure", then "Change Log", then "New" on the right.
From here, you'll be asked for all of the information related to the change event. A Summary and when it occurred are required, everything else is optional.
Description is a markdown enabled field that is displayed when a change event is show on pages like incidents.
Labels allow you to add key/value pairs that make filtering change events easier later on. Labels are string to string pairs.
Time Range allows you to decide between a point in time or range of time. This is valuable if you're doing things that are instantly applied (changing a feature flag to be on) vs something that has a duration associated (such as doing a rolling update to a set of servers).
Environments are all of the environments that the change event impacts, you can add as many as you like, or none.
Services are the same as environments.
Once you've entered in all of the relevant information, click "Submit" to create the change event.