This can be used to import resources from legacy alerting providers into Signals.
Download the binary from GitHub releases, or if you prefer using Go toolchain, run:
go install github.com/firehydrant/signals-migrator@latestEnsure these environment variables are set:
FIREHYDRANT_API_KEY(retrieve this from FireHydrant Settings > API Keys)PROVIDERe.g. 'PagerDuty'PROVIDER_API_KEYPROVIDER_APP_ID(optional, not all providers require this)
Afterwards, run signals-migrator import (or go run . import for development version), which will generate output/[PROVIDER]_to_fh_signals.tf file.
During the process, we will attempt to match users by email to existing users in FireHydrant. For users without a match, we will ask you to decide on whether to skip the user or manually match them to existing user.
Important
If you are using Single Sign-On (SSO) for FireHydrant, we recommend using SCIM provisioning before running this tool to ensure users are correctly set up.
On the other hand, we can't reliably match teams ourselves as they have wide variance of identification. As such, we will ask you to select from three options:
- Skip the team
- Create a new team
- Match to an existing team
Afterwards, the tool will generate the mapping appropriately, handling de-duplication and merging as necessary.
We support importing from various providers. Refer to individual documentation for provider-specific instructions:
| PagerDuty | Opsgenie | VictorOps | |
|---|---|---|---|
| Docs | PagerDuty | Opsgenie | VictorOps |
| Import users | ✅ | ✅ | ✅ |
| Import teams and members | ✅ | ✅ | ✅ |
| Import escalation policies | ✅ | ✅ | ❌ |
| Import scheduling strategy | ✅ | ✅ | ❌ |
- When creating schedules or rotations with a custom strategy, a start time must be added. We will attempt to add this based on the start time provided to us by Opsgenie, but this will fail to apply if that date is more than 30 days in the past. If that happens, choose an appropriate start time less than 30 days in the past and update the terraform accordingly before applying
- When creating multiple escalation policies for a team, one of them should be selected as the default before applying. To do so, update the
default = "false"line at the end of the escalation policy resource definition in the terraform file before applying.
A devcontainer setup has been prepared to be used in VS Code. Run direnv allow to auto-load .env file.
If alternative method is preferred, you will need:
- Go compiler
- Install tools in
./deps.sh
Also recommended to smooth out development outside of devcontainer:
- direnv for autoloading
.envfile, also automatically adds./binto$PATH. - just for running tasks defined in
Justfile.
Most commands in Justfile can be run out in regular bash too.
