Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
Signed-off-by: Markus Blaschke <[email protected]>
  • Loading branch information
mblaschke committed Aug 6, 2022
1 parent 0c3495b commit 6b92273
Showing 1 changed file with 78 additions and 49 deletions.
127 changes: 78 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,63 @@ Usage:
pagerduty-exporter [OPTIONS]
Application Options:
--debug debug mode [$DEBUG]
-v, --verbose verbose mode [$VERBOSE]
--log.json Switch log output to json format [$LOG_JSON]
--pagerduty.authtoken= PagerDuty auth token [$PAGERDUTY_AUTH_TOKEN]
--pagerduty.schedule.override-duration= PagerDuty timeframe for fetching schedule overrides (time.Duration)
(default: 48h) [$PAGERDUTY_SCHEDULE_OVERRIDE_TIMEFRAME]
--pagerduty.schedule.entry-timeframe= PagerDuty timeframe for fetching schedule entries (time.Duration)
(default: 72h) [$PAGERDUTY_SCHEDULE_ENTRY_TIMEFRAME]
--pagerduty.schedule.entry-timeformat= PagerDuty schedule entry time format (label) (default: Mon, 02 Jan 15:04
MST) [$PAGERDUTY_SCHEDULE_ENTRY_TIMEFORMAT]
--pagerduty.incident.timeformat= PagerDuty incident time format (label) (default: Mon, 02 Jan 15:04 MST)
[$PAGERDUTY_INCIDENT_TIMEFORMAT]
--pagerduty.disable-teams Set to true to disable checking PagerDuty teams (for plans that don't
include it) [$PAGERDUTY_DISABLE_TEAMS]
--pagerduty.team-filter= Passes team ID as a list option when applicable. [$PAGERDUTY_TEAM_FILTER]
--pagerduty.max-connections= Maximum numbers of TCP connections to PagerDuty API (concurrency)
(default: 4) [$PAGERDUTY_MAX_CONNECTIONS]
--pagerduty.summary.since= Timeframe which data should be fetched for summary metrics
(time.Duration) (default: 730h) [$PAGERDUTY_SUMMARY_SINCE]
--bind= Server address (default: :8080) [$SERVER_BIND]
--scrape.time= Scrape time (time.duration) (default: 5m) [$SCRAPE_TIME]
--scrape.time.summary= Scrape time for general summary metrics (time.duration) (default: 15m)
[$SCRAPE_TIME_SUMMARY]
--scrape.time.live= Scrape time incidents and oncalls (time.duration) (default: 1m)
[$SCRAPE_TIME_LIVE]
--log.debug debug mode [$LOG_DEBUG]
--log.trace trace mode [$LOG_TRACE]
--log.json Switch log output to json format [$LOG_JSON]
--pagerduty.authtoken= PagerDuty auth token [$PAGERDUTY_AUTH_TOKEN]
--pagerduty.max-connections= Maximum numbers of TCP connections to PagerDuty
API (concurrency) (default: 4)
[$PAGERDUTY_MAX_CONNECTIONS]
--pagerduty.schedule.override-duration= PagerDuty timeframe for fetching schedule
overrides (time.Duration) (default: 48h)
[$PAGERDUTY_SCHEDULE_OVERRIDE_TIMEFRAME]
--pagerduty.schedule.entry-timeframe= PagerDuty timeframe for fetching schedule
entries (time.Duration) (default: 72h)
[$PAGERDUTY_SCHEDULE_ENTRY_TIMEFRAME]
--pagerduty.schedule.entry-timeformat= PagerDuty schedule entry time format (label)
(default: Mon, 02 Jan 15:04 MST)
[$PAGERDUTY_SCHEDULE_ENTRY_TIMEFORMAT]
--pagerduty.incident.status=[triggered|acknowledged|resolved|all] PagerDuty incident status filter (eg.
'triggered', 'acknowledged', 'resolved' or
'all') (default: triggered, acknowledged)
[$PAGERDUTY_INCIDENT_STATUS]
--pagerduty.incident.timeformat= PagerDuty incident time format (label)
(default: Mon, 02 Jan 15:04 MST)
[$PAGERDUTY_INCIDENT_TIMEFORMAT]
--pagerduty.incident.limit= PagerDuty incident limit count (default: 5000)
[$PAGERDUTY_INCIDENT_LIMIT]
--pagerduty.disable-teams Set to true to disable checking PagerDuty teams
(for plans that don't include it)
[$PAGERDUTY_DISABLE_TEAMS]
--pagerduty.team-filter= Passes team ID as a list option when
applicable. [$PAGERDUTY_TEAM_FILTER]
--pagerduty.summary.since= Timeframe which data should be fetched for
summary metrics (time.Duration) (default: 730h)
[$PAGERDUTY_SUMMARY_SINCE]
--bind= Server address (default: :8080) [$SERVER_BIND]
--scrape.time= Scrape time (time.duration) (default: 5m)
[$SCRAPE_TIME]
--scrape.time.maintenancewindow= Scrape time for maintenance window metrics
(time.duration; default is SCRAPE_TIME)
[$SCRAPE_TIME_MAINTENANCEWINDOW]
--scrape.time.schedule= Scrape time for schedule metrics
(time.duration; default is SCRAPE_TIME)
[$SCRAPE_TIME_SCHEDULE]
--scrape.time.service= Scrape time for service metrics (time.duration;
default is SCRAPE_TIME) [$SCRAPE_TIME_SERVICE]
--scrape.time.team= Scrape time for team metrics (time.duration;
default is SCRAPE_TIME) [$SCRAPE_TIME_TEAM]
--scrape.time.user= Scrape time for user metrics (time.duration;
default is SCRAPE_TIME) [$SCRAPE_TIME_USER]
--scrape.time.summary= Scrape time for general summary metrics
(time.duration) (default: 15m)
[$SCRAPE_TIME_SUMMARY]
--scrape.time.live= Scrape time incidents and oncalls
(time.duration) (default: 1m)
[$SCRAPE_TIME_LIVE]
Help Options:
-h, --help Show this help message
-h, --help Show this help message
```

`--pagerduty.authtoken=` is a required option. Please refer to the [documentation](https://support.pagerduty.com/docs/generating-api-keys)
Expand Down Expand Up @@ -78,28 +107,28 @@ This will run the container locally, mapping container port 8080 to local port 8

## Metrics

| Metric | Scraper | Description |
|---------------------------------------|--------------------|---------------------------------------------------------------------------------------|
| `pagerduty_stats` | Collector | Collector stats |
| `pagerduty_api_counter` | Collector | PagerDuty api call counter |
| `pagerduty_team_info` | Team | Team informations |
| `pagerduty_user_info` | User | User informations |
| `pagerduty_service_info` | Service | Service (per team) informations |
| `pagerduty_maintenancewindow_info` | MaintanaceWindows | Maintenance window informations |
| `pagerduty_maintenancewindow_status` | Maintenance window | status (start and endtime) |
| `pagerduty_schedule_info` | Schedule | Schedule informations |
| `pagerduty_schedule_layer_info` | Schedule | Schedule layer informations |
| `pagerduty_schedule_layer_entry` | Schedule | Schedule layer schedule entries |
| `pagerduty_schedule_layer_coverage` | Schedule | Schedule layer schedule coverage |
| `pagerduty_schedule_final_entry` | Schedule | Schedule final (rendered) schedule entries |
| `pagerduty_schedule_final_coverage` | Schedule | Schedule final (rendered) schedule coverage |
| `pagerduty_schedule_override` | Schedule | Schedule override informations |
| `pagerduty_schedule_oncall` | Oncall | Schedule oncall informations |
| `pagerduty_incident_info` | Incident | Incident informations |
| `pagerduty_incident_status` | Incident | Incident status informations (acknowledgement, assignment) |
| `pagerduty_summary_incident_count` | Summary | Count of incidents splitted by status, service, urgency and priority |
| `pagerduty_summary_incident_resolve_duration` | Summary | Histogram (buckets) for resolve duration splitted by service, urgency and priority |
| `pagerduty_summary_incident_statuschange_count` | Summary | Counter for new or changed status (eg triggered -> acknowledged) incidents splitted by service, urgency and priority |
| Metric | Scraper | Description |
|-------------------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------|
| `pagerduty_stats` | Collector | Collector stats |
| `pagerduty_api_counter` | Collector | PagerDuty api call counter |
| `pagerduty_team_info` | Team | Team informations |
| `pagerduty_user_info` | User | User informations |
| `pagerduty_service_info` | Service | Service (per team) informations |
| `pagerduty_maintenancewindow_info` | MaintanaceWindows | Maintenance window informations |
| `pagerduty_maintenancewindow_status` | Maintenance window | status (start and endtime) |
| `pagerduty_schedule_info` | Schedule | Schedule informations |
| `pagerduty_schedule_layer_info` | Schedule | Schedule layer informations |
| `pagerduty_schedule_layer_entry` | Schedule | Schedule layer schedule entries |
| `pagerduty_schedule_layer_coverage` | Schedule | Schedule layer schedule coverage |
| `pagerduty_schedule_final_entry` | Schedule | Schedule final (rendered) schedule entries |
| `pagerduty_schedule_final_coverage` | Schedule | Schedule final (rendered) schedule coverage |
| `pagerduty_schedule_override` | Schedule | Schedule override informations |
| `pagerduty_schedule_oncall` | Oncall | Schedule oncall informations |
| `pagerduty_incident_info` | Incident | Incident informations |
| `pagerduty_incident_status` | Incident | Incident status informations (acknowledgement, assignment) |
| `pagerduty_summary_incident_count` | Summary | Count of incidents splitted by status, service, urgency and priority |
| `pagerduty_summary_incident_resolve_duration` | Summary | Histogram (buckets) for resolve duration splitted by service, urgency and priority |
| `pagerduty_summary_incident_statuschange_count` | Summary | Counter for new or changed status (eg triggered -> acknowledged) incidents splitted by service, urgency and priority |

Prometheus queries
------------------
Expand All @@ -115,7 +144,7 @@ Next shift
bottomk(1,
min by (userName, time) (
pagerduty_schedule_final_entry{scheduleID="$SCHEDULEID",type="startTime"}
* on (userID) group_left(userName) (pagerduty_user_info)
* on (userID) group_left(userName) (pagerduty_user_info)
) - time() > 0
)
```

0 comments on commit 6b92273

Please sign in to comment.