geonode.monitoring.models

Attributes

log

GEOIP_DB

Classes

Host

Describes one physical instance

ServiceType

Service Type list

Service

Service is a entity describing deployed processes.

MonitoredResource

Metric

ServiceTypeMetric

EventType

RequestEvent

ExceptionEvent

MetricLabel

MetricValue

NotificationCheck

NotificationReceiver

NotificationMetricDefinition

MetricNotificationCheck

BuiltIns

Functions

get_geoip()

populate()

do_autoconfigure()

Create configuration from GeoNode's settings:

do_reload()

This will reload uwsgi if it's available

Module Contents

geonode.monitoring.models.log[source]
geonode.monitoring.models.GEOIP_DB = None[source]
geonode.monitoring.models.get_geoip()[source]
class geonode.monitoring.models.Host[source]

Bases: django.db.models.Model

Describes one physical instance

name[source]
ip[source]
active[source]
__str__()[source]
class geonode.monitoring.models.ServiceType[source]

Bases: django.db.models.Model

Service Type list

TYPE_GEONODE = 'geonode'[source]
TYPE_GEOSERVER = 'geoserver'[source]
TYPE_HOST_GN = 'hostgeonode'[source]
TYPE_HOST_GS = 'hostgeoserver'[source]
TYPES[source]
name[source]
__str__()[source]
property is_system_monitor[source]
class geonode.monitoring.models.Service[source]

Bases: django.db.models.Model

Service is a entity describing deployed processes.

name[source]
host[source]
check_interval[source]
last_check[source]
service_type[source]
active[source]
notes[source]
url[source]
__str__()[source]
get_metrics()[source]
property is_hostgeonode[source]
property is_hostgeoserver[source]
property is_system_monitor[source]
class geonode.monitoring.models.MonitoredResource[source]

Bases: django.db.models.Model

TYPE_EMPTY = ''[source]
TYPE_LAYER = 'dataset'[source]
TYPE_MAP = 'map'[source]
TYPE_RESOURCE_BASE = 'resource_base'[source]
TYPE_DOCUMENT = 'document'[source]
TYPE_STYLE = 'style'[source]
TYPE_ADMIN = 'admin'[source]
TYPE_URL = 'url'[source]
TYPE_OTHER = 'other'[source]
_TYPES[source]
TYPES[source]
name[source]
type[source]
resource_id[source]
class Meta[source]
unique_together = (('name', 'type'),)[source]
__str__()[source]
classmethod get(resource_type, resource_name, or_create=False)[source]
class geonode.monitoring.models.Metric[source]

Bases: django.db.models.Model

TYPE_RATE = 'rate'[source]
TYPE_COUNT = 'count'[source]
TYPE_VALUE = 'value'[source]
TYPE_VALUE_NUMERIC = 'value_numeric'[source]
TYPES[source]
AGGREGATE_MAP[source]
AGGREGATE_DJANGO_MAP[source]
UNIT_BYTES = 'B'[source]
UNIT_KILOBYTES = 'KB'[source]
UNIT_MEGABYTES = 'MB'[source]
UNIT_GIGABYTES = 'GB'[source]
UNIT_BPS = 'B/s'[source]
UNIT_MBPS = 'MB/s'[source]
UNIT_KBPS = 'KB/s'[source]
UNIT_GBPS = 'GB/s'[source]
UNIT_SECONDS = 's'[source]
UNIT_COUNT = 'Count'[source]
UNIT_RATE = 'Rate'[source]
UNIT_PERCENTAGE = '%'[source]
UNITS[source]
name[source]
description[source]
type[source]
unit[source]
get_aggregate_field()[source]
get_aggregate_name()[source]
__unicode__()[source]
property is_rate[source]
property is_count[source]
property is_value_numeric[source]
property is_value[source]
classmethod get_for(name, service=None)[source]
class geonode.monitoring.models.ServiceTypeMetric[source]

Bases: django.db.models.Model

service_type[source]
metric[source]
__str__()[source]
class geonode.monitoring.models.EventType[source]

Bases: django.db.models.Model

_ows_types[source]
EVENT_DOWNLOAD = 'download'[source]
EVENT_CREATE = 'create'[source]
EVENT_CHANGE = 'change'[source]
EVENT_CHANGE_METADATA = 'change_metadata'[source]
EVENT_REMOVE = 'remove'[source]
EVENT_VIEW = 'view'[source]
EVENT_VIEW_METADATA = 'view_metadata'[source]
EVENT_PUBLISH = 'publish'[source]
EVENT_UPLOAD = 'upload'[source]
EVENT_GEOSERVER = 'geoserver'[source]
EVENT_OWS = 'OWS:ALL'[source]
EVENT_OTHER = 'other'[source]
EVENT_ALL = 'all'[source]
EVENT_TYPES[source]
name[source]
__str__()[source]
classmethod get(service_name=None)[source]
property is_all[source]
property is_other[source]
property is_ows[source]
property is_download[source]
property is_view[source]
class geonode.monitoring.models.RequestEvent[source]

Bases: django.db.models.Model

_methods[source]
METHODS[source]
created[source]
received[source]
service[source]
event_type[source]
host[source]
request_path[source]
resources[source]
request_method[source]
response_status[source]
response_size[source]
response_time[source]
response_type[source]
user_agent[source]
user_agent_family[source]
client_ip[source]
client_lat[source]
client_lon[source]
client_country[source]
client_region[source]
client_city[source]
custom_id[source]
user_identifier[source]
user_username[source]
classmethod _get_resources(type_name, resources_list)[source]
classmethod _get_or_create_resources(res_name, res_type, res_id)[source]
classmethod _get_geonode_resources(request)[source]

Return serialized resources affected by request

classmethod _get_event_type(request, default_event_type='view')[source]

Returns event type based on events

static _get_ua_family(ua)[source]
classmethod _get_user_agent(ua)[source]
classmethod _get_user_location(request_ip)[source]
classmethod _get_user_data_gn(request)[source]
classmethod _get_user_data_gs(request)[source]
classmethod from_geonode(service, request, response)[source]
classmethod from_geoserver(service, request_data, received=None)[source]

Writes RequestEvent for data from audit log in GS

class geonode.monitoring.models.ExceptionEvent[source]

Bases: django.db.models.Model

created[source]
received[source]
service[source]
error_type[source]
error_message[source]
error_data[source]
request[source]
classmethod add_error(from_service, error_type, stack_trace, request=None, created=None, message=None)[source]
property url[source]
property service_data[source]
expose()[source]
class geonode.monitoring.models.MetricLabel[source]

Bases: django.db.models.Model

name[source]
user[source]
__unicode__()[source]
class geonode.monitoring.models.MetricValue[source]

Bases: django.db.models.Model

valid_from[source]
valid_to[source]
service_metric[source]
service[source]
event_type[source]
resource[source]
label[source]
value[source]
value_num[source]
value_raw[source]
samples_count[source]
data[source]
class Meta[source]
unique_together = ('valid_from', 'valid_to', 'service', 'service_metric', 'resource', 'label', 'event_type')[source]
__str__()[source]
classmethod add(metric, valid_from, valid_to, service, label, value_raw=None, resource=None, value=None, value_num=None, data=None, event_type=None, samples_count=None)[source]

Create new MetricValue shortcut

classmethod get_for(metric, service=None, valid_on=None, resource=None, label=None, event_type=None)[source]
class geonode.monitoring.models.NotificationCheck[source]

Bases: django.db.models.Model

GRACE_PERIOD_1M[source]
GRACE_PERIOD_5M[source]
GRACE_PERIOD_10M[source]
GRACE_PERIOD_30M[source]
GRACE_PERIOD_1H[source]
GRACE_PERIODS[source]
SEVERITY_WARNING = 'warning'[source]
SEVERITY_ERROR = 'error'[source]
SEVERITY_FATAL = 'fatal'[source]
SEVERITIES[source]
name[source]
description[source]
user_threshold[source]
metrics[source]
last_send[source]
grace_period[source]
severity[source]
active[source]
__str__()[source]
property notification_subject[source]
property is_warning[source]
property is_error[source]
property is_fatal[source]
property can_send[source]
mark_send()[source]
property url[source]
get_users()[source]
get_emails()[source]
property emails[source]
check_notifications(for_timestamp=None)[source]
classmethod check_for(for_timestamp=None, active=None)[source]
classmethod get_steps(min_, max_, thresholds)[source]
classmethod create(name, description, user_threshold, severity=None)[source]
get_user_threshold(notification_def)[source]
get_user_form(*args_, **kwargs_)[source]

Return form to validate metric thresholds input from user.

process_user_form(data, is_json=False)[source]

Process form data from user and create Notifica

get_definition_for(def_name)[source]
class geonode.monitoring.models.NotificationReceiver[source]

Bases: django.db.models.Model

notification_check[source]
user[source]
email[source]
save(*args, **kwargs)[source]
class geonode.monitoring.models.NotificationMetricDefinition[source]

Bases: django.db.models.Model

FIELD_OPTION_MIN_VALUE = 'min_value'[source]
FIELD_OPTION_MAX_VALUE = 'max_value'[source]
FIELD_OPTION_MAX_TIMEOUT = 'max_timeout'[source]
FIELD_OPTION_CHOICES[source]
notification_check[source]
metric[source]
use_service[source]
use_resource[source]
use_label[source]
use_event_type[source]
field_option[source]
description[source]
min_value[source]
max_value[source]
steps[source]
property unit[source]
is_min_val()[source]
is_max_val()[source]
is_max_timeout()[source]
property steps_calculated[source]
property is_enabled[source]
property current_value[source]
get_fields()[source]
property field_name[source]
populate_min_max()[source]
class geonode.monitoring.models.MetricNotificationCheck[source]

Bases: django.db.models.Model

notification_check[source]
metric[source]
service[source]
resource[source]
label[source]
event_type[source]
min_value[source]
max_value[source]
max_timeout[source]
active[source]
definition[source]
__str__()[source]
property field_option[source]
exception MetricValueError(metric, check, message, offending_value, threshold_value, description)[source]

Bases: ValueError

Inappropriate argument value (of correct type).

metric[source]
check[source]
message[source]
name[source]
offending_value[source]
threshold_value[source]
severity[source]
check_url[source]
check_id[source]
spotted_at[source]
description[source]
valid_from[source]
valid_to[source]
__str__()[source]

Return str(self).

check_value(metric, valid_on)[source]

Check specific metric if it’s faulty or not.

check_metric(for_timestamp=None)[source]
class geonode.monitoring.models.BuiltIns[source]
service_types[source]
host_service_types[source]
metrics_rate = ('response.time', 'response.size')[source]
geonode_metrics = ('request', 'request.count', 'request.users', 'request.ip', 'request.ua', 'request.path',...[source]
host_metrics = ('load.1m', 'load.5m', 'load.15m', 'mem.free', 'mem.usage', 'mem.usage.percent', 'mem.buffers',...[source]
rates = ('response.time', 'response.size', 'network.in.rate', 'network.out.rate', 'load.1m', 'load.5m',...[source]
values = ('request.ip', 'request.ua', 'request.ua.family', 'request.path', 'request.method',...[source]
values_numeric = ('storage.total', 'storage.used', 'storage.free', 'mem.free', 'mem.usage', 'mem.buffers', 'mem.all')[source]
counters = ('request.count', 'network.in', 'network.out', 'response.error.count', 'uptime')[source]
unit_seconds = ('response.time', 'uptime', 'cpu.usage')[source]
unit_bytes = ('response.size', 'network.in', 'network.out', 'mem.free', 'mem.usage', 'mem.buffers', 'mem.all')[source]
unit_bps = ('network.in.rate', 'network.out.rate')[source]
unit_rate = ('cpu.usage.rate', 'load.1m', 'load.5m', 'load.15m')[source]
unit_percentage = ('cpu.usage.percent', 'mem.usage.percent')[source]
descriptions[source]
geonode.monitoring.models.populate()[source]
geonode.monitoring.models.do_autoconfigure()[source]

Create configuration from GeoNode’s settings:

  • Extract all hosts

  • Create GeoNode instances

    • Create host-GeoNode instances (prefer this instead of GeoServer)

  • Create GeoServer instances

    • Create host-GeoServer instances if needed

geonode.monitoring.models.do_reload()[source]

This will reload uwsgi if it’s available