Pingdom Uptime Report documentation¶
Installation¶
To install this package:
pip install pingdom-uptime-report
Configuring, using Pingdom as an example:
mkdir -p ~/.config
cat > ~/.config/uptime_report.cfg <<EOF
[pingdom]
apikey = ...
password = ...
username = user@domain.com
EOF
Code reference¶
uptime_report package¶
Subpackages¶
uptime_report.backends package¶
Submodules¶
uptime_report.backends.pingdom module¶
Pingdom backend for uptime data.
-
exception
uptime_report.backends.pingdom.
MaxOffsetReached
(offset)¶ Bases:
exceptions.Exception
-
offset
= Attribute(name='offset', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
-
class
uptime_report.backends.pingdom.
PingdomBackend
(username, password, apikey, include_ok=False)¶ Bases:
object
-
apikey
= Attribute(name='apikey', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
classmethod
defaults
()¶
-
classmethod
from_config
(config=None)¶
-
get_checks
()¶
-
get_outages
(*args, **kwargs)¶
-
get_results
¶ Iterate over results in the given timeframe.
Parameters: - start – int, timestamp
- finish – int, timestamp
- status – list, a list of uptime_report.outage.ResultType values
- checks – list, a list of check IDs
-
include_ok
= Attribute(name='include_ok', default=False, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
new_connection
()¶
-
password
= Attribute(name='password', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
username
= Attribute(name='username', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
-
class
uptime_report.backends.pingdom.
PingdomStatus
¶ Bases:
enum.Enum
-
DOWN
= 'down'¶
-
UNCONFIRMED
= 'unconfirmed_down'¶
-
UNKNOWN
= 'unknown'¶
-
UP
= 'up'¶
-
to_result
()¶
-
-
class
uptime_report.backends.pingdom.
Result
(time, check, type, meta=NOTHING)¶ Bases:
object
Base result class.
-
check
= Attribute(name='check', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
meta
= Attribute(name='meta', default=Factory(factory=<type 'dict'>, takes_self=False), validator=None, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
time
= Attribute(name='time', default=NOTHING, validator=None, repr=True, cmp=True, hash=None, init=True, convert=<function get>, metadata=mappingproxy({}))¶
-
type
= Attribute(name='type', default=NOTHING, validator=<in_ validator with options <enum 'ResultType'>>, repr=True, cmp=True, hash=None, init=True, convert=None, metadata=mappingproxy({}))¶
-
-
class
uptime_report.backends.pingdom.
ResultType
¶ Bases:
enum.Enum
-
DOWN
= 'down'¶
-
UNCONFIRMED
= 'unconfirmed'¶
-
UNKNOWN
= 'unknown'¶
-
UP
= 'up'¶
-
-
uptime_report.backends.pingdom.
backend
¶ alias of
PingdomBackend
-
uptime_report.backends.pingdom.
check_results
(check, start=None, finish=None, *args, **kwargs)¶
-
uptime_report.backends.pingdom.
continue_offset
(decorated)¶
-
uptime_report.backends.pingdom.
make_result
(check, item)¶
-
uptime_report.backends.pingdom.
outages_from_results
(results, group_by=None)¶
Submodules¶
uptime_report.backend_utils module¶
-
uptime_report.backend_utils.
group_by_range
(it, pred, keyfunc=None)¶ Return contiguous ranges of items satisfying a predicate.
-
uptime_report.backend_utils.
offset_iter
¶ Call a method with limit/offset arguments until exhausted.
Given a callable that accepts limit/offset keyword arguments and returns an iterable, call the method repeatedly until less than limit items are returned, yielding each item.
uptime_report.cli module¶
Uptime report CLI.
This module contains all CLI entrypoints. Command line argument parsing and execution is implemented via clize.
Examples:
$ python -m uptime_report.cli --version
-
uptime_report.cli.
backends
()¶ Print supported backends.
-
uptime_report.cli.
get_log_level
(level)¶ Convert a value to a log level.
Converts a case-insensitive log level name to the corresponding integer value from Python’s
logging
package.Example
>>> assert logging.DEBUG == get_log_level('debug')
Parameters: level (str) – the value to convert Returns: a log level from the logging
package.Return type: int Raises: clize.errors.CliValueError
– if the value cannot be converted.
-
uptime_report.cli.
main
(**kwargs)¶ Run the CLI application.
-
uptime_report.cli.
outages
¶ List outages.
Parameters:
-
uptime_report.cli.
uptime
¶ Do the uptime reporting stuff.
-
uptime_report.cli.
version
()¶ Get the version of this program.
-
uptime_report.cli.
with_backend
(decorated)¶ Provide
--backend
option that initializes a backend.Parameters: backend (str, optional) – the name of the backend. Defaults to 'pingdom'
.Raises: clize.errors.CliValueError
– if the backend configuration is missing
-
uptime_report.cli.
with_common_args
(decorated)¶ Add common CLI arguments to a method.
Provides
--log-level
,--config
and--use-cache
options.Parameters: - log_level (int) – the log level code to configure logging.
- use_cache (bool) – True if you want requests_cache to be used.
-
uptime_report.cli.
with_filters
(decorated)¶ Provide common filter arguments.
Parameters: - start (str) – the start time in a string parseable by
get_time()
. - finish (str) – the finish time in a string parseable by
get_time()
. - overlap (int, optional) – how many seconds must be between two outage periods so they don’t get merged.
- minlen (int, optional) – how many seconds must an outage period be so that it’s not filtered out.
Raises: clize.errors.CliValueError
– if one of the values cannot be converted.- start (str) – the start time in a string parseable by
uptime_report.config module¶
-
uptime_report.config.
write_config
¶ Write out a sample config file. Use ‘-‘ for stdout.
Parameters: output – the path to the file to write.
uptime_report.outage module¶
Uptime report outages.
This module contains generic code for processing outages.
-
class
uptime_report.outage.
Outage
(start, finish, before=None, after=None, meta=NOTHING)¶ Bases:
object
An outage.
-
meta
¶ (dict, optinal): arbitrary metadata about this outage.
-
-
uptime_report.outage.
filter_outage_len
(outages, minlen=0)¶ Filter-out outages that have a small duration.
Parameters: Yields: Outage – the next outage from the list that has the minimum duration.
Example
>>> outages = [Outage(start=1, finish=5), Outage(start=2, finish=3)] >>> [o.start.timestamp for o in filter_outage_len(outages, minlen=2)] [1]
-
uptime_report.outage.
make_ranges
(outages, overlap)¶ Combine outages to create new ranges.
-
uptime_report.outage.
merge_outages
(outages, overlap=0)¶ Merge a list of Outage objects.
-
uptime_report.outage.
sort_range
(value)¶ Handle None values as very far in the past or future.
Module contents¶
Pingdom Uptime Report - Generate uptime reports using the Pingdom API.