105 lines
3.8 KiB
PHP
105 lines
3.8 KiB
PHP
<?php
|
|
|
|
include_once 'alerta.php';
|
|
|
|
/**
|
|
* Team configuration
|
|
* Arrays of teams, the key being the Virtual Host FQDN, e.g. opsweekly.mycompany.com
|
|
*
|
|
* Options:
|
|
* display_name: Used for display purposes, your nice team name.
|
|
* email_report_to: The email address the weekly reports users write should be emailed to
|
|
* database: The name of the MySQL database the data for this team is stored in
|
|
* oncall: false or an array. If false, hides the oncall sections of the interface. If true, please complete the other information.
|
|
* - provider: The plugin you wish to use to retrieve on call information for the user to complete
|
|
* - provider_options: An array of options that you wish to pass to the provider for this team's on call searching
|
|
* - There are variables for the options that are subsituted within the provider. See their docs for more info
|
|
* - timezone: The PHP timezone string that your on-call rotation starts in
|
|
* - start: Inputted into strtotime, this is when your oncall rotation starts.
|
|
* e.g. Match this to Pagerduty if you use that for scheduling.
|
|
* - end: Inputted into strtotime, this is when your oncall rotation ends.
|
|
* e.g. Match this to Pagerduty if you use that for scheduling.
|
|
**/
|
|
$teams = array(
|
|
"opsweekly.alerta.io" => array(
|
|
"root_url" => "/opsweekly",
|
|
"display_name" => "Ops",
|
|
"email_report_to" => "ops@mycompany.com",
|
|
"database" => "opsweekly",
|
|
"oncall" => array(
|
|
"provider" => "alerta",
|
|
"provider_options" => array(
|
|
"alerta_search" => 'tags=watch:#logged_in_username#',
|
|
),
|
|
"timezone" => "America/New_York",
|
|
"start" => "friday 18:00",
|
|
"end" => "friday 18:00",
|
|
),
|
|
"weekly_hints" => array("jira", "github"),
|
|
"irc_channel" => "#ops"
|
|
),
|
|
);
|
|
|
|
/**
|
|
* Oncall providers
|
|
* These are used to retrieve information given a time period about the alerts the requesting
|
|
* user received.
|
|
**/
|
|
$oncall_providers = array(
|
|
"alerta" => array(
|
|
"display_name" => "Alerta",
|
|
"lib" => "providers/oncall/alerta.php",
|
|
"options" => array(
|
|
"base_url" => "http://api.alerta.io",
|
|
"apikey" => "demo-key"
|
|
),
|
|
),
|
|
"splunk" => array(
|
|
"display_name" => "Splunk",
|
|
"lib" => "providers/oncall/splunk.php",
|
|
"options" => array(
|
|
"base_url" => "https://splunk.mycompany.com:8089",
|
|
"username" => "splunkapiusername",
|
|
"password" => "splunkapipassword",
|
|
),
|
|
),
|
|
"example" => array(
|
|
"display_name" => "Example",
|
|
"lib" => "providers/oncall/example.php",
|
|
),
|
|
"logstash" => array(
|
|
"display_name" => "Logstash",
|
|
"lib" => "providers/oncall/logstash.php",
|
|
"options" => array(
|
|
"base_url" => "http://localhost:9200",
|
|
),
|
|
),
|
|
"pagerduty" => array(
|
|
"display_name" => "Pagerduty",
|
|
"lib" => "providers/oncall/pagerduty.php",
|
|
"options" => array(
|
|
"base_url" => "https://mycompany.pagerduty.com/api/v1",
|
|
// Supports two auth methods. Username/password or apikey.
|
|
// If you define apikey, then the username/password will be ignored
|
|
"username" => "mylogin@mycompany.com",
|
|
"password" => "password",
|
|
// uncomment and define if you use apikeys
|
|
// "apikey" => "XXXXXX",
|
|
),
|
|
),
|
|
);
|
|
|
|
// The number of search results per page
|
|
$search_results_per_page = 25;
|
|
|
|
// Path to disk where a debug error log file can be written
|
|
$error_log_file = "/var/log/httpd/opsweekly_debug.log";
|
|
|
|
print_r(getOnCallNotifications(
|
|
'John Doe',
|
|
$oncall_providers["alerta"]["options"],
|
|
$teams["opsweekly.alerta.io"]["oncall"]["provider_options"],
|
|
date('U', strtotime('last monday')),
|
|
date('U', strtotime('next monday')))
|
|
);
|