Skip to content

Commit eaa68e3

Browse files
fix: fix flake8 findings (#35)
Signed-off-by: Ricky Moorhouse <[email protected]> Signed-off-by: Ricky Moorhouse <[email protected]>
1 parent 085e29a commit eaa68e3

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed

analytics_net.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import alog
2-
import logging
32
import tempfile
43
from kubernetes import client, config
54
import urllib3
65
import base64
76
import requests
8-
import json
97

108
urllib3.disable_warnings()
119
logger = alog.use_channel("analytics")
1210

1311

1412
class AnalyticsNet(object):
13+
""" Analytics Subsystem data """
1514
namespace = ''
1615
token = None
1716
token_expires = 0
@@ -41,6 +40,7 @@ def __init__(self, config, trawler):
4140
self.find_hostname_and_certs()
4241

4342
def find_hostname_and_certs(self):
43+
""" Lookup hostname and certs for communicating with analytics subsystem"""
4444
try:
4545
# Initialise the k8s API
4646
if self.use_kubeconfig:
@@ -56,11 +56,12 @@ def find_hostname_and_certs(self):
5656
for service in servicelist.items:
5757
if 'analytics-storage' in service.metadata.name:
5858
for port_object in service.spec.ports:
59-
if port_object.name == 'http-es':
59+
if port_object.name == 'http-es' or port_object.name == 'http':
6060
port = 9200 # default
6161
if port_object.port:
6262
port = port_object.port
63-
self.hostname = "{}.{}.svc.cluster.local.:{}".format(service.metadata.name, self.namespace, port)
63+
self.hostname = "{}.{}.svc.cluster.local.:{}".format(
64+
service.metadata.name, self.namespace, port)
6465
if self.hostname:
6566
logger.info("Identified service host: {}".format(self.hostname))
6667
# Get certificates to communicate with analytics
@@ -85,6 +86,7 @@ def find_hostname_and_certs(self):
8586
logger.exception(e)
8687

8788
def buildQuery(self):
89+
""" Build search query """
8890
return """{
8991
"size": 0,
9092
"query": {
@@ -104,16 +106,19 @@ def buildQuery(self):
104106

105107
@alog.timed_function(logger.trace)
106108
def fish(self):
109+
""" main metrics gathering function """
107110
errored = False
108111
if self.hostname:
109112
try:
110-
r = requests.get('https://{}/_cluster/health'.format(self.hostname), verify=False,
111-
cert=self.certificates.name)
112-
113+
r = requests.get('https://{}/_cluster/health'.format(self.hostname),
114+
verify=False,
115+
cert=self.certificates.name)
116+
113117
health_obj = r.json()
114118
logger.debug(r.text)
115-
except requests.exceptions.ConnectionError as e:
116-
logger.error("Connection error on attempt to get cluster health from 'https://{}/_cluster/health'".format(self.hostname))
119+
except requests.exceptions.ConnectionError:
120+
logger.error("Error getting cluster health from 'https://{}/_cluster/health'".format(
121+
self.hostname))
117122
errored = True
118123
health_obj = {}
119124

@@ -134,7 +139,7 @@ def fish(self):
134139
self.trawler.set_gauge('analytics', 'initializing_shards_total', health_obj['initializing_shards'])
135140
self.trawler.set_gauge('analytics', 'pending_tasks_total', health_obj['number_of_pending_tasks'])
136141
calls_req = requests.get('https://{}/apic-api-r/_search'.format(self.hostname), verify=False,
137-
cert=self.certificates.name, data=self.buildQuery())
142+
cert=self.certificates.name, data=self.buildQuery())
138143

139144
summary = calls_req.json()
140145
self.trawler.set_gauge('analytics', 'apicalls_lasthour.total', summary['hits']['total'])
@@ -145,7 +150,6 @@ def fish(self):
145150
logger.info("Cluster health failed, so no data and no point querying for calls")
146151

147152

148-
149153
if __name__ == "__main__":
150154
net = AnalyticsNet({"namespace": "apic-management"}, None)
151155
net.fish()

trawler.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import os
44
import time
55
import alog
6-
import logging
7-
import logging.config
86
import threading
97
import yaml
108
import click
@@ -43,9 +41,9 @@ def __init__(self, config_file=None):
4341
self.load_config(config_file)
4442
if 'logging' in self.config:
4543
alog.configure(
46-
default_level=self.config['logging'].get('level', 'debug'),
47-
filters=self.config['logging'].get('filters', None),
48-
formatter=self.config['logging'].get('format', 'json')
44+
default_level=self.config['logging'].get('level', 'debug'),
45+
filters=self.config['logging'].get('filters', None),
46+
formatter=self.config['logging'].get('format', 'json')
4947
)
5048
else:
5149
alog.configure(default_level='info', formatter='json')
@@ -72,7 +70,7 @@ def __init__(self, config_file=None):
7270
self.watcher = Watcher()
7371

7472
def read_secret(self, key):
75-
# Helper function read secrets from mounted k8s secrets
73+
""" Helper function read secrets from mounted k8s secrets """
7674
try:
7775
with open("{}/{}".format(self.secrets_path, key), 'r') as secret:
7876
value = secret.read().rstrip()
@@ -96,7 +94,7 @@ def set_gauge(self, component, target_name, value, pod_name=None, labels=None):
9694
if pod_name:
9795
labels['pod'] = pod_name
9896
if 'labels' in self.config['prometheus']:
99-
labels = {**self.config['prometheus']['labels'],**labels}
97+
labels = {**self.config['prometheus']['labels'], **labels}
10098
logger.debug("Entering set_gauge - params: ({}, {}, {}, {})".format(component, target_name, value, pod_name))
10199
logger.debug(labels)
102100
if type(value) is float or type(value) is int:
@@ -115,18 +113,18 @@ def set_gauge(self, component, target_name, value, pod_name=None, labels=None):
115113
prometheus_target)
116114

117115
logger.debug("Setting gauge %s to %f",
118-
self.gauges[prometheus_target]._name, value)
116+
self.gauges[prometheus_target]._name, value)
119117
try:
120118
if labels:
121119
self.gauges[prometheus_target].labels(**labels).set(value)
122120
else:
123121
self.gauges[prometheus_target].set(value)
124-
except ValueError as valueException:
125-
self.logger.exception(valueException)
122+
except ValueError as value_exception:
123+
self.logger.exception(value_exception)
126124
if self.config['graphite']['enabled']:
127125
if pod_name:
128126
metric_name = "{}.{}.{}".format(component, pod_name, target_name)
129-
else:
127+
else:
130128
metric_name = "{}.{}".format(component, target_name)
131129
self.graphite.stage(metric_name, value)
132130

@@ -137,7 +135,7 @@ def inc_counter(self, component, target_name, value, pod_name=None, labels=None)
137135
if pod_name:
138136
labels['pod'] = pod_name
139137
if 'labels' in self.config['prometheus']:
140-
labels = {**self.config['prometheus']['labels'],**labels}
138+
labels = {**self.config['prometheus']['labels'], **labels}
141139
logger.debug("Entering inc_counter - params: ({}, {}, {}, {})".format(component, target_name, value, pod_name))
142140
logger.debug(labels)
143141
if type(value) is float or type(value) is int:
@@ -156,20 +154,21 @@ def inc_counter(self, component, target_name, value, pod_name=None, labels=None)
156154
prometheus_target)
157155

158156
logger.debug("Setting gauge %s to %f",
159-
self.gauges[prometheus_target]._name, value)
157+
self.gauges[prometheus_target]._name, value)
160158
if labels:
161159
self.gauges[prometheus_target].labels(**labels).inc()
162160
else:
163161
self.gauges[prometheus_target].inc()
164162
if self.config['graphite']['enabled']:
165163
if pod_name:
166164
metric_name = "{}.{}.{}".format(component, pod_name, target_name)
167-
else:
165+
else:
168166
metric_name = "{}.{}".format(component, target_name)
169167
self.graphite.stage(metric_name, value)
170168

171169
@alog.timed_function(logger.trace)
172170
def trawl_metrics(self):
171+
""" Main loop to trawl for metrics """
173172
# Initialise
174173
logger.info("Laying nets...")
175174
nets = []
@@ -183,7 +182,7 @@ def trawl_metrics(self):
183182
nets.append(ManagerNet(self.config['nets']['manager'], self))
184183
if 'analytics' in self.config['nets'] and self.config['nets']['analytics'].get('enabled', True):
185184
nets.append(AnalyticsNet(self.config['nets']['analytics'], self))
186-
185+
187186
# Start thread to watch if needed (nets need to call watcher.register)
188187
if self.watcher.enabled:
189188
watchThread = threading.Thread(target=self.watcher.watch_pods, daemon=True)
@@ -197,17 +196,18 @@ def trawl_metrics(self):
197196
self.graphite.store()
198197
time.sleep(self.frequency)
199198

199+
200200
@click.command()
201201
@click.version_option()
202202
@click.option('-c', '--config', required=False, envvar='CONFIG',
203203
help="Specifies an alternative config file",
204204
default=None,
205205
type=click.Path())
206206
def cli(config=None):
207+
""" run main trawler application """
207208
trawler = Trawler(config)
208209
trawler.trawl_metrics()
209210

210211

211212
if __name__ == '__main__':
212213
cli()
213-

0 commit comments

Comments
 (0)