Icinga-core 1.4.0
next gen monitoring
cgi/avail.c File Reference
#include "../include/config.h"
#include "../include/common.h"
#include "../include/objects.h"
#include "../include/comments.h"
#include "../include/statusdata.h"
#include "../include/readlogs.h"
#include "../include/cgiutils.h"
#include "../include/cgiauth.h"
#include "../include/getcgi.h"

Go to the source code of this file.

Data Structures

struct  archived_state_struct
struct  avail_subject_struct

Defines

#define max(a, b)   (((a) > (b)) ? (a) : (b))
#define min(a, b)   (((a) < (b)) ? (a) : (b))
#define AS_CURRENT_STATE   -1
#define AS_NO_DATA   0
#define AS_PROGRAM_END   1
#define AS_PROGRAM_START   2
#define AS_HOST_UP   3
#define AS_HOST_DOWN   4
#define AS_HOST_UNREACHABLE   5
#define AS_SVC_OK   6
#define AS_SVC_UNKNOWN   7
#define AS_SVC_WARNING   8
#define AS_SVC_CRITICAL   9
#define AS_SVC_DOWNTIME_START   10
#define AS_SVC_DOWNTIME_END   11
#define AS_HOST_DOWNTIME_START   12
#define AS_HOST_DOWNTIME_END   13
#define AS_SOFT_STATE   1
#define AS_HARD_STATE   2
#define DISPLAY_NO_AVAIL   0
#define DISPLAY_HOSTGROUP_AVAIL   1
#define DISPLAY_HOST_AVAIL   2
#define DISPLAY_SERVICE_AVAIL   3
#define DISPLAY_SERVICEGROUP_AVAIL   4
#define HOST_SUBJECT   0
#define SERVICE_SUBJECT   1
#define MIN_TIMESTAMP_SPACING   10
#define MAX_ARCHIVE_SPREAD   65
#define MAX_ARCHIVE   65
#define MAX_ARCHIVE_BACKTRACKS   60

Typedefs

typedef struct
archived_state_struct 
archived_state
typedef struct avail_subject_struct avail_subject

Functions

void create_subject_list (void)
void add_subject (int, char *, char *)
avail_subjectfind_subject (int, char *, char *)
void compute_availability (void)
void compute_subject_availability (avail_subject *, time_t)
void compute_subject_availability_times (int, int, time_t, time_t, time_t, avail_subject *, archived_state *)
void compute_subject_downtime (avail_subject *, time_t)
void compute_subject_downtime_times (time_t, time_t, avail_subject *, archived_state *)
void compute_subject_downtime_part_times (time_t, time_t, int, avail_subject *)
void display_hostgroup_availability (void)
void display_specific_hostgroup_availability (hostgroup *)
void display_servicegroup_availability (void)
void display_specific_servicegroup_availability (servicegroup *)
void display_host_availability (void)
void display_service_availability (void)
void write_log_entries (avail_subject *)
void get_running_average (double *, double, int)
void host_report_url (char *, char *)
void service_report_url (char *, char *, char *)
void compute_report_times (void)
int convert_host_state_to_archived_state (int)
int convert_service_state_to_archived_state (int)
void add_global_archived_state (int, int, time_t, char *)
void add_archived_state (int, int, time_t, char *, avail_subject *)
void add_scheduled_downtime (int, time_t, avail_subject *)
void free_availability_data (void)
void free_archived_state_list (archived_state *)
void read_archived_state_data (void)
void scan_log_file_for_archived_state_data (char *)
unsigned long calculate_total_time (time_t, time_t)
int process_cgivars (void)
int main (int argc, char **argv)

Variables

char main_config_file [MAX_FILENAME_LENGTH]
char url_html_path [MAX_FILENAME_LENGTH]
char url_images_path [MAX_FILENAME_LENGTH]
char url_stylesheets_path [MAX_FILENAME_LENGTH]
char url_js_path [MAX_FILENAME_LENGTH]
hosthost_list
hostgrouphostgroup_list
servicegroupservicegroup_list
serviceservice_list
timeperiodtimeperiod_list
logentryentry_list
int log_rotation_method
authdata current_authdata
avail_subjectsubject_list = NULL
time_t t1
time_t t2
int display_type = DISPLAY_NO_AVAIL
int timeperiod_type = TIMEPERIOD_LAST24HOURS
int show_log_entries = FALSE
int full_log_entries = FALSE
int show_scheduled_downtime = TRUE
int start_second = 0
int start_minute = 0
int start_hour = 0
int start_day = 1
int start_month = 1
int start_year = 2000
int end_second = 0
int end_minute = 0
int end_hour = 24
int end_day = 1
int end_month = 1
int end_year = 2000
int get_date_parts = FALSE
int select_hostgroups = FALSE
int select_hosts = FALSE
int select_servicegroups = FALSE
int select_services = FALSE
int compute_time_from_parts = FALSE
int show_all_hostgroups = FALSE
int show_all_hosts = FALSE
int show_all_servicegroups = FALSE
int show_all_services = FALSE
int assume_initial_states = TRUE
int assume_state_retention = TRUE
int assume_states_during_notrunning = TRUE
int initial_assumed_host_state = AS_NO_DATA
int initial_assumed_service_state = AS_NO_DATA
int include_soft_states = FALSE
char * hostgroup_name = ""
char * host_name = ""
char * servicegroup_name = ""
char * service_desc = ""
int backtrack_archives = 2
int earliest_archive = 0
int json_list_start = TRUE
int embedded
int display_header
int daemon_check
int content_type
int refresh
char * csv_delimiter
char * csv_data_enclosure
timeperiodcurrent_timeperiod = NULL
int CGI_ID = AVAIL_CGI_ID

Define Documentation

#define AS_CURRENT_STATE   -1

Definition at line 59 of file avail.c.

#define AS_HARD_STATE   2

Definition at line 77 of file avail.c.

#define AS_HOST_DOWN   4

Definition at line 64 of file avail.c.

#define AS_HOST_DOWNTIME_END   13

Definition at line 74 of file avail.c.

#define AS_HOST_DOWNTIME_START   12

Definition at line 73 of file avail.c.

#define AS_HOST_UNREACHABLE   5

Definition at line 65 of file avail.c.

#define AS_HOST_UP   3

Definition at line 63 of file avail.c.

#define AS_NO_DATA   0

Definition at line 60 of file avail.c.

#define AS_PROGRAM_END   1

Definition at line 61 of file avail.c.

#define AS_PROGRAM_START   2

Definition at line 62 of file avail.c.

#define AS_SOFT_STATE   1

Definition at line 76 of file avail.c.

#define AS_SVC_CRITICAL   9

Definition at line 69 of file avail.c.

#define AS_SVC_DOWNTIME_END   11

Definition at line 72 of file avail.c.

#define AS_SVC_DOWNTIME_START   10

Definition at line 71 of file avail.c.

#define AS_SVC_OK   6

Definition at line 66 of file avail.c.

#define AS_SVC_UNKNOWN   7

Definition at line 67 of file avail.c.

#define AS_SVC_WARNING   8

Definition at line 68 of file avail.c.

#define DISPLAY_HOST_AVAIL   2

Definition at line 83 of file avail.c.

#define DISPLAY_HOSTGROUP_AVAIL   1

Definition at line 82 of file avail.c.

#define DISPLAY_NO_AVAIL   0

Definition at line 81 of file avail.c.

#define DISPLAY_SERVICE_AVAIL   3

Definition at line 84 of file avail.c.

#define DISPLAY_SERVICEGROUP_AVAIL   4

Definition at line 85 of file avail.c.

#define HOST_SUBJECT   0

Definition at line 88 of file avail.c.

#define max (   a,
 
)    (((a) > (b)) ? (a) : (b))

Definition at line 52 of file avail.c.

#define MAX_ARCHIVE   65

Definition at line 94 of file avail.c.

#define MAX_ARCHIVE_BACKTRACKS   60

Definition at line 95 of file avail.c.

#define MAX_ARCHIVE_SPREAD   65

Definition at line 93 of file avail.c.

#define min (   a,
 
)    (((a) < (b)) ? (a) : (b))

Definition at line 55 of file avail.c.

#define MIN_TIMESTAMP_SPACING   10

Definition at line 91 of file avail.c.

#define SERVICE_SUBJECT   1

Definition at line 89 of file avail.c.


Typedef Documentation


Function Documentation

void add_archived_state ( int  entry_type,
int  state_type,
time_t  time_stamp,
char *  state_info,
avail_subject subject 
)

Definition at line 2620 of file avail.c.

void add_global_archived_state ( int  entry_type,
int  state_type,
time_t  time_stamp,
char *  state_info 
)

Definition at line 2607 of file avail.c.

void add_scheduled_downtime ( int  state_type,
time_t  time_stamp,
avail_subject subject 
)

Definition at line 2680 of file avail.c.

void add_subject ( int  subject_type,
char *  hn,
char *  sd 
)

Definition at line 2487 of file avail.c.

unsigned long calculate_total_time ( time_t  start_time,
time_t  end_time 
)

Definition at line 5841 of file avail.c.

void compute_availability ( void  )

Definition at line 1579 of file avail.c.

void compute_report_times ( void  )

Definition at line 3037 of file avail.c.

void compute_subject_availability ( avail_subject subject,
time_t  current_time 
)

Definition at line 1596 of file avail.c.

void compute_subject_availability_times ( int  first_state,
int  last_state,
time_t  real_start_time,
time_t  start_time,
time_t  end_time,
avail_subject subject,
archived_state as 
)

Definition at line 1905 of file avail.c.

void compute_subject_downtime ( avail_subject subject,
time_t  current_time 
)

Definition at line 2088 of file avail.c.

void compute_subject_downtime_part_times ( time_t  start_time,
time_t  end_time,
int  subject_state,
avail_subject subject 
)

Definition at line 2310 of file avail.c.

void compute_subject_downtime_times ( time_t  start_time,
time_t  end_time,
avail_subject subject,
archived_state sd 
)

Definition at line 2181 of file avail.c.

int convert_host_state_to_archived_state ( int  current_status)

Definition at line 2360 of file avail.c.

int convert_service_state_to_archived_state ( int  current_status)

Definition at line 2374 of file avail.c.

void create_subject_list ( void  )

Definition at line 2391 of file avail.c.

void display_host_availability ( void  )

Definition at line 4303 of file avail.c.

void display_hostgroup_availability ( void  )

Definition at line 3268 of file avail.c.

void display_service_availability ( void  )

Definition at line 5033 of file avail.c.

void display_servicegroup_availability ( void  )

Definition at line 3608 of file avail.c.

void display_specific_hostgroup_availability ( hostgroup hg)

Definition at line 3288 of file avail.c.

void display_specific_servicegroup_availability ( servicegroup sg)

Definition at line 3629 of file avail.c.

avail_subject * find_subject ( int  type,
char *  hn,
char *  sd 
)

Definition at line 2582 of file avail.c.

void free_archived_state_list ( archived_state as_list)

Definition at line 2744 of file avail.c.

void free_availability_data ( void  )

Definition at line 2724 of file avail.c.

void get_running_average ( double *  running_average,
double  new_value,
int  current_item 
)

Definition at line 5832 of file avail.c.

void host_report_url ( char *  hn,
char *  label 
)

Definition at line 5783 of file avail.c.

int main ( int  argc,
char **  argv 
)

Definition at line 247 of file avail.c.

static int process_cgivars ( void  )

Definition at line 1046 of file avail.c.

void read_archived_state_data ( void  )

Definition at line 2764 of file avail.c.

void scan_log_file_for_archived_state_data ( char *  filename)

Definition at line 2804 of file avail.c.

void service_report_url ( char *  hn,
char *  sd,
char *  label 
)

Definition at line 5807 of file avail.c.

void write_log_entries ( avail_subject subject)

Definition at line 3072 of file avail.c.


Variable Documentation

Definition at line 182 of file avail.c.

Definition at line 183 of file avail.c.

Definition at line 184 of file avail.c.

Definition at line 230 of file avail.c.

int CGI_ID = AVAIL_CGI_ID

Definition at line 245 of file avail.c.

Definition at line 175 of file avail.c.

Definition at line 165 of file cgiutils.c.

Definition at line 66 of file cgiutils.c.

Definition at line 65 of file cgiutils.c.

Definition at line 97 of file avail.c.

Definition at line 243 of file avail.c.

Definition at line 169 of file cgiutils.c.

Definition at line 167 of file cgiutils.c.

int display_type = DISPLAY_NO_AVAIL

Definition at line 150 of file avail.c.

Definition at line 231 of file avail.c.

int embedded

Definition at line 166 of file cgiutils.c.

int end_day = 1

Definition at line 165 of file avail.c.

int end_hour = 24

Definition at line 164 of file avail.c.

int end_minute = 0

Definition at line 163 of file avail.c.

int end_month = 1

Definition at line 166 of file avail.c.

int end_second = 0

Definition at line 162 of file avail.c.

int end_year = 2000

Definition at line 167 of file avail.c.

the list with all current logentries

Definition at line 36 of file readlogs.c.

int full_log_entries = FALSE

Definition at line 153 of file avail.c.

int get_date_parts = FALSE

Definition at line 169 of file avail.c.

Definition at line 52 of file objects.c.

char* host_name = ""

Definition at line 190 of file avail.c.

Definition at line 56 of file objects.c.

char* hostgroup_name = ""

Definition at line 189 of file avail.c.

int include_soft_states = FALSE

Definition at line 187 of file avail.c.

int initial_assumed_host_state = AS_NO_DATA

Definition at line 185 of file avail.c.

Definition at line 186 of file avail.c.

int json_list_start = TRUE

Definition at line 232 of file avail.c.

readlogs.c

Definition at line 174 of file icinga.c.

char main_config_file[MAX_FILENAME_LENGTH]

Definition at line 50 of file icingastats.c.

int refresh

Definition at line 168 of file cgiutils.c.

int select_hostgroups = FALSE

Definition at line 170 of file avail.c.

int select_hosts = FALSE

Definition at line 171 of file avail.c.

int select_servicegroups = FALSE

Definition at line 172 of file avail.c.

int select_services = FALSE

Definition at line 173 of file avail.c.

char* service_desc = ""

Definition at line 192 of file avail.c.

Definition at line 53 of file objects.c.

Definition at line 57 of file objects.c.

char* servicegroup_name = ""

Definition at line 191 of file avail.c.

int show_all_hostgroups = FALSE

Definition at line 177 of file avail.c.

int show_all_hosts = FALSE

Definition at line 178 of file avail.c.

Definition at line 179 of file avail.c.

int show_all_services = FALSE

Definition at line 180 of file avail.c.

int show_log_entries = FALSE

Definition at line 152 of file avail.c.

Definition at line 154 of file avail.c.

int start_day = 1

Definition at line 159 of file avail.c.

int start_hour = 0

Definition at line 158 of file avail.c.

int start_minute = 0

Definition at line 157 of file avail.c.

int start_month = 1

Definition at line 160 of file avail.c.

int start_second = 0

Definition at line 156 of file avail.c.

int start_year = 2000

Definition at line 161 of file avail.c.

Definition at line 145 of file avail.c.

time_t t1

Definition at line 147 of file avail.c.

time_t t2

Definition at line 148 of file avail.c.

Definition at line 59 of file objects.c.

int timeperiod_type = TIMEPERIOD_LAST24HOURS

Definition at line 151 of file avail.c.

char url_html_path[MAX_FILENAME_LENGTH]

Definition at line 38 of file cgiutils.c.

char url_images_path[MAX_FILENAME_LENGTH]

Definition at line 41 of file cgiutils.c.

char url_js_path[MAX_FILENAME_LENGTH]

Definition at line 44 of file cgiutils.c.

char url_stylesheets_path[MAX_FILENAME_LENGTH]

Definition at line 43 of file cgiutils.c.

 All Data Structures Files Functions Variables Typedefs Defines