graylog mkdocs
Taylor committed
Jul 11, 2023 at 17:50 UTC
143e1db2f5463a38301f50432e47c136a70e39b6
4 files changed
+2794
-2523
backend/app/models/models.py
-211
@@ -172,214 +172,3 @@ class ConnectorsSchema(ma.Schema):
172
173
connector_schema: ConnectorsSchema = ConnectorsSchema()
174
connectors_schema: ConnectorsSchema = ConnectorsSchema(many=True)
175
-
176
-
177
-# Class for the disabled rule IDs which will store the rule ID, previous configuration, new configuration, reason for
178
-# disabling, date disabled, and the length of time the rule will be disabled for
179
-# Path: backend\app\models.py
180
-# class DisabledRules(db.Model):
181
-# id = db.Column(db.Integer, primary_key=True)
182
-# rule_id = db.Column(db.String(100))
183
-# previous_level = db.Column(db.String(1000))
184
-# new_level = db.Column(db.String(1000))
185
-# reason_for_disabling = db.Column(db.String(100))
186
-# date_disabled = db.Column(db.DateTime, default=datetime.utcnow)
187
-# length_of_time = db.Column(db.Integer)
188
-
189
-# def __init__(
190
-# self,
191
-# rule_id,
192
-# previous_level,
193
-# new_level,
194
-# reason_for_disabling,
195
-# length_of_time,
196
-# ):
197
-# self.rule_id = rule_id
198
-# self.previous_level = previous_level
199
-# self.new_level = new_level
200
-# self.reason_for_disabling = reason_for_disabling
201
-# self.length_of_time = length_of_time
202
-
203
-# def __repr__(self):
204
-# return f"<DisabledRules {self.rule_id}>"
205
-
206
-
207
-# class DisabledRulesSchema(ma.Schema):
208
-# class Meta:
209
-# fields = (
210
-# "id",
211
-# "rule_id",
212
-# "previous_level",
213
-# "new_level",
214
-# "reason_for_disabling",
215
-# "date_disabled",
216
-# "length_of_time",
217
-# )
218
-
219
-
220
-# disabled_rule_schema = DisabledRulesSchema()
221
-# disabled_rules_schema = DisabledRulesSchema(many=True)
222
-
223
-
224
-# Class for Wazuh Indexer allocation which stores disk stats and the host.
225
-# Generate timestamp for each entry and invoke every 5 minutes.
226
-# Path: backend\app\models.py
227
-# class WazuhIndexerAllocation(db.Model):
228
-# id = db.Column(db.Integer, primary_key=True)
229
-# node = db.Column(db.String(100))
230
-# disk_used = db.Column(db.Float)
231
-# disk_available = db.Column(db.Float)
232
-# disk_total = db.Column(db.Float)
233
-# disk_percent = db.Column(db.Float)
234
-# timestamp = db.Column(db.DateTime, default=datetime.utcnow)
235
-
236
-# def __init__(
237
-# self,
238
-# node,
239
-# disk_used,
240
-# disk_available,
241
-# disk_total,
242
-# disk_percent,
243
-# ):
244
-# self.node = node
245
-# self.disk_used = disk_used
246
-# self.disk_available = disk_available
247
-# self.disk_total = disk_total
248
-# self.disk_percent = disk_percent
249
-
250
-# def __repr__(self):
251
-# return f"<WazuhIndexerAllocation {self.node}>"
252
-
253
-
254
-# class WazuhIndexerAllocationSchema(ma.Schema):
255
-# class Meta:
256
-# fields = (
257
-# "id",
258
-# "node",
259
-# "disk_used",
260
-# "disk_available",
261
-# "disk_total",
262
-# "disk_percent",
263
-# "timestamp",
264
-# )
265
-
266
-
267
-# wazuh_indexer_allocation_schema = WazuhIndexerAllocationSchema()
268
-# wazuh_indexer_allocations_schema = WazuhIndexerAllocationSchema(many=True)
269
-
270
-
271
-# # Class for Graylog allocation which stores throughput metrics
272
-# # Generate timestamp for each entry and invoke every 5 minutes.
273
-# # Path: backend\app\models.py
274
-# class GraylogMetricsAllocation(db.Model):
275
-# id = db.Column(db.Integer, primary_key=True)
276
-# input_usage = db.Column(db.Float)
277
-# output_usage = db.Column(db.Float)
278
-# processor_usage = db.Column(db.Float)
279
-# input_1_sec_rate = db.Column(db.Float)
280
-# output_1_sec_rate = db.Column(db.Float)
281
-# total_input = db.Column(db.Float)
282
-# total_output = db.Column(db.Float)
283
-# timestamp = db.Column(db.DateTime, default=datetime.utcnow)
284
-
285
-# def __init__(
286
-# self,
287
-# input_usage,
288
-# output_usage,
289
-# processor_usage,
290
-# input_1_sec_rate,
291
-# output_1_sec_rate,
292
-# total_input,
293
-# total_output,
294
-# ):
295
-# self.input_usage = input_usage
296
-# self.output_usage = output_usage
297
-# self.processor_usage = processor_usage
298
-# self.input_1_sec_rate = input_1_sec_rate
299
-# self.output_1_sec_rate = output_1_sec_rate
300
-# self.total_input = total_input
301
-# self.total_output = total_output
302
-
303
-# def __repr__(self):
304
-# return f"<GraylogMetricsAllocation {self.id}>"
305
-
306
-
307
-# class GraylogMetricsAllocationSchema(ma.Schema):
308
-# class Meta:
309
-# fields = (
310
-# "id",
311
-# "input_usage",
312
-# "output_usage",
313
-# "processor_usage",
314
-# "input_1_sec_rate",
315
-# "output_1_sec_rate",
316
-# "total_input",
317
-# "total_output",
318
-# "timestamp",
319
-# )
320
-
321
-
322
-# graylog_metrics_allocation_schema = GraylogMetricsAllocationSchema()
323
-# graylog_metrics_allocations_schema = GraylogMetricsAllocationSchema(many=True)
324
-
325
-
326
-# Class for cases which stores the case ID, case name, list of agents
327
-# Path: backend\app\models.py
328
-# class Case(db.Model):
329
-# id = db.Column(db.Integer, primary_key=True)
330
-# case_id = db.Column(db.Integer)
331
-# case_name = db.Column(db.String(100))
332
-# agents = db.Column(db.String(1000))
333
-
334
-# def __init__(self, case_id, case_name, agents):
335
-# self.case_id = case_id
336
-# self.case_name = case_name
337
-# self.agents = agents
338
-
339
-# def __repr__(self):
340
-# return f"<Case {self.case_id}>"
341
-
342
-
343
-# class CaseSchema(ma.Schema):
344
-# class Meta:
345
-# fields = (
346
-# "id",
347
-# "case_id",
348
-# "case_name",
349
-# "agents",
350
-# )
351
-
352
-
353
-# case_schema = CaseSchema()
354
-# cases_schema = CaseSchema(many=True)
355
-
356
-
357
-# # Class for artifacts collected which stores the artifact name, artificat results (json), hostname
358
-# # Path: backend\app\models.py
359
-# class Artifact(db.Model):
360
-# id = db.Column(db.Integer, primary_key=True)
361
-# artifact_name = db.Column(db.String(100))
362
-# artifact_results = db.Column(TEXT)
363
-# hostname = db.Column(db.String(100))
364
-
365
-# def __init__(self, artifact_name, artifact_results, hostname):
366
-# self.artifact_name = artifact_name
367
-# self.artifact_results = artifact_results
368
-# self.hostname = hostname
369
-
370
-# def __repr__(self):
371
-# return f"<Artifact {self.artifact_name}>"
372
-
373
-
374
-# class ArtifactSchema(ma.Schema):
375
-# class Meta:
376
-# fields = (
377
-# "id",
378
-# "artifact_name",
379
-# "artifact_results",
380
-# "hostname",
381
-# )
382
-
383
-
384
-# artifact_schema = ArtifactSchema()
385
-# artifacts_schema = ArtifactSchema(many=True)
backend/docs/graylog.md
+206
-1
@@ -2,18 +2,223 @@
2
3
### <span style="color:blue">Graylog Model</span>
4
5
+# graylog.py
6
+
7
+The provided Python file `graylog.py` defines a database model and a corresponding schema for storing, retrieving, and manipulating Graylog metrics data. This file is likely part of a larger system where Graylog is used for log management.
8
+
9
+Here is a summary of what the script does:
10
+
11
+## GraylogMetricsAllocation Class
12
+
13
+The `GraylogMetricsAllocation` class is a SQLAlchemy model, which corresponds to a database table `graylog_metrics_allocation`. This table stores throughput metrics from Graylog. The table includes the following fields:
14
+
15
+- `id`: The primary key of the table.
16
+- `input_usage`: The input usage value.
17
+- `output_usage`: The output usage value.
18
+- `processor_usage`: The processor usage value.
19
+- `input_1_sec_rate`: The input per second rate.
20
+- `output_1_sec_rate`: The output per second rate.
21
+- `total_input`: The total input value.
22
+- `total_output`: The total output value.
23
+- `timestamp`: The timestamp when the entry is created, defaulting to the current time.
24
+
25
+## GraylogMetricsAllocationSchema Class
26
+
27
+The `GraylogMetricsAllocationSchema` class is a Marshmallow schema that facilitates serialization and deserialization of `GraylogMetricsAllocation` instances. This can be helpful when converting instances to JSON format for API responses or when parsing incoming data.
28
+
29
+At the end of the script, instances of `GraylogMetricsAllocationSchema` are created for single and multiple `GraylogMetricsAllocation` instances, respectively.
30
+
31
+This file provides a way to store and work with Graylog metrics data in a structured manner, allowing for easy retrieval, manipulation, and serialization/deserialization of the data.
32
+
33
::: app.models.graylog
34
<br>
35
36
### <span style="color:green">Graylog Routes</span>
37
38
+## graylog.py
39
+
40
+The `graylog.py` file appears to be a Flask application module that defines several HTTP endpoints related to interacting with the Graylog service. It uses Flask's Blueprint functionality to create endpoints under the "/graylog" path. Here are the details:
41
+
42
+### Imports
43
+
44
+The script imports necessary modules and services at the beginning:
45
+
46
+- `flask`: A micro web framework written in Python.
47
+- `jsonify`: A Flask function that converts Python data structures to JSON format.
48
+- `app.services.Graylog.*`: Various services related to Graylog, such as `IndexService`, `InputsService`, `MessagesService`, and `MetricsService`.
49
+
50
+### Blueprint
51
+
52
+The script defines a `Blueprint` named `bp`, which is a way to organize a group of related views and other code in Flask. The `bp` is registered with the Flask application and all the defined routes under the "/graylog" path will be associated with this blueprint.
53
+
54
+The endpoints defined in this script are not provided in the given information, so a detailed breakdown of the routes and their associated functions cannot be provided without reviewing the code further.
55
+
56
+This file is likely part of a larger Flask application that provides an API interface for interacting with the Graylog service. It follows a modular approach by organizing related endpoints and functionality into a blueprint, promoting code organization and maintainability.
57
+
58
+## Endpoints
59
+
60
+The `graylog.py` script defines the following endpoints under the `/graylog` path:
61
+
62
+- **GET /graylog/messages**: This endpoint returns the latest 10 messages from Graylog. It utilizes the `MessagesService` to collect these messages.
63
+
64
+- **GET /graylog/metrics**: This endpoint returns Graylog metrics, including the uncommitted journal size. It utilizes the `MetricsService` to collect these metrics.
65
+
66
+- **GET /graylog/indices**: This endpoint returns a list of all Graylog indices. It utilizes the `IndexService` to collect these indices.
67
+
68
+- **DELETE /graylog/indices/<index_name>/delete**: This endpoint deletes a specified Graylog index. It utilizes the `IndexService` to delete the specified index.
69
+
70
+- **GET /graylog/inputs**: This endpoint returns a list of all running and configured inputs in Graylog. It utilizes the `InputsService` to collect these inputs.
71
+
72
+## Services
73
+
74
+The `graylog.py` script uses several services to interact with Graylog:
75
+
76
+- `MessagesService`: Used to collect messages from Graylog.
77
+- `MetricsService`: Used to collect Graylog metrics.
78
+- `IndexService`: Used to collect and delete Graylog indices.
79
+- `InputsService`: Used to collect running and configured inputs in Graylog.
80
+
81
+These services handle the implementation details of interacting with the Graylog API to perform the respective operations.
82
+
83
+Each endpoint is well-documented with a docstring, providing clear descriptions of its purpose, accepted arguments (if any), and the returned data. The script demonstrates good organization and adheres to common practices for structuring Flask applications.
84
+
85
::: app.routes.graylog
86
<br>
87
13
-### <span style="color:red">Graylog Services</span>
88
+### <span style="color:red">Graylog Services Index</span>
89
+
90
+## IndexService Class
91
+
92
+The `index.py` file defines the `IndexService` class, which encapsulates the functionality for interacting with the Graylog indexing system.
93
+
94
+### Imports
95
+
96
+The script imports the following modules and services:
97
+
98
+- `requests`: A Python library for making HTTP requests.
99
+- `loguru`: A third-party library providing a more convenient and powerful logger for Python.
100
+- `typing`: A standard Python library for supporting type hints.
101
+- `app.services.Graylog.universal.UniversalService`: The `UniversalService` class from the `app.services.Graylog.universal` module.
102
+
103
+### Class Definition: IndexService
104
+
105
+The `IndexService` class encapsulates the logic for pulling index data from Graylog. It provides the following methods:
106
+
107
+- `__init__`: Initializes the `IndexService` by collecting Graylog details using `UniversalService`.
108
+- `collect_indices`: Collects the indices that are managed by Graylog.
109
+- `_collect_managed_indices`: Core method for collecting indices from Graylog by making a GET request to the Graylog API endpoint `/api/system/indexer/indices`.
110
+- `_extract_index_names`: Helper method to extract the names of the indices from the Graylog API response.
111
+- `delete_index`: Deletes a specified index from Graylog.
112
+- `_delete_index`: Core method for deleting an index from Graylog by making a DELETE request to the Graylog API endpoint `/api/system/indexer/indices/{index_name}`.
113
+
114
+### Error Handling
115
+
116
+The script includes error handling using try/except blocks. When an error occurs, the error message is logged using `loguru`'s `logger.error` function, and a dictionary with a failure message and success status set to False is returned.
117
+
118
+The `IndexService` class follows good practices for encapsulating functionality related to Graylog's indexing system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.
119
120
::: app.services.Graylog.index
121
+
122
+### <span style="color:red">Graylog Services Inputs</span>
123
+
124
+## InputsService Class
125
+
126
+The `inputs.py` file defines the `InputsService` class, which encapsulates the functionality for interacting with the Graylog input system.
127
+
128
+### Imports
129
+
130
+The script imports the following modules and services:
131
+
132
+- `requests`: A Python library for making HTTP requests.
133
+- `loguru`: A third-party library providing a more convenient and powerful logger for Python.
134
+- `typing`: A standard Python library for supporting type hints.
135
+- `app.services.Graylog.universal.UniversalService`: The `UniversalService` class from the `app.services.Graylog.universal` module.
136
+
137
+### Class Definition: InputsService
138
+
139
+The `InputsService` class encapsulates the logic for pulling input data from Graylog. It provides the following methods:
140
+
141
+- `__init__`: Initializes the `InputsService` by collecting Graylog details using `UniversalService`.
142
+- `collect_running_inputs`: Collects the running inputs that are managed by Graylog.
143
+- `_collect_running_inputs`: Core method for collecting running inputs from Graylog by making a GET request to the Graylog API endpoint `/api/system/inputstates`.
144
+- `collect_configured_inputs`: Collects the configured inputs that are managed by Graylog.
145
+- `_collect_configured_inputs`: Core method for collecting configured inputs from Graylog by making a GET request to the Graylog API endpoint `/api/system/inputs`.
146
+
147
+### Error Handling
148
+
149
+The script includes error handling using try/except blocks. When an error occurs, the error message is logged using `loguru`'s `logger.error` function, and a dictionary with a failure message and success status set to False is returned.
150
+
151
+The `InputsService` class follows good practices for encapsulating functionality related to Graylog's input system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.
152
+
153
::: app.services.Graylog.inputs
154
+
155
+### <span style="color:red">Graylog Services Messages</span>
156
+
157
+## MessagesService Class
158
+
159
+The `messages.py` file defines the `MessagesService` class, which encapsulates the functionality for interacting with the Graylog message system.
160
+
161
+### Imports
162
+
163
+The script imports the following modules and services:
164
+
165
+- `requests`: A Python library for making HTTP requests.
166
+- `loguru`: A third-party library providing a more convenient and powerful logger for Python.
167
+- `typing`: A standard Python library for supporting type hints.
168
+- `app.services.Graylog.universal.UniversalService`: The `UniversalService` class from the `app.services.Graylog.universal` module.
169
+
170
+### Class Definition: MessagesService
171
+
172
+The `MessagesService` class encapsulates the logic for polling messages from Graylog. It provides the following methods:
173
+
174
+- `__init__`: Initializes the `MessagesService` by collecting Graylog details using `UniversalService`.
175
+- `_get_messages_from_graylog`: Fetches messages from Graylog for a specific page number by making a GET request to the Graylog API endpoint `/api/system/messages?page={page_number}`.
176
+- `_handle_message_fetch_error`: Helper method for handling exceptions that occur while fetching messages.
177
+- `collect_messages`: Collects the latest 10 messages from Graylog.
178
+
179
+### Error Handling
180
+
181
+The script includes error handling using try/except blocks. When an error occurs while fetching messages, the `_handle_message_fetch_error` helper method is used to handle the exception.
182
+
183
+The `MessagesService` class follows good practices for encapsulating functionality related to Graylog's message system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.
184
+
185
::: app.services.Graylog.messages
186
+
187
+### <span style="color:red">Graylog Services Metrics</span>
188
+
189
+## MetricsService Class
190
+
191
+The `metrics.py` file defines the `MetricsService` class, which encapsulates the functionality for interacting with the Graylog metrics system.
192
+
193
+### Imports
194
+
195
+The script imports the following modules and services:
196
+
197
+- `requests`: A Python library for making HTTP requests.
198
+- `loguru`: A third-party library providing a more convenient and powerful logger for Python.
199
+- `typing`: A standard Python library for supporting type hints.
200
+- `app.services.Graylog.universal.UniversalService`: The `UniversalService` class from the `app.services.Graylog.universal` module.
201
+
202
+### Class Definition: MetricsService
203
+
204
+The `MetricsService` class encapsulates the logic for polling metrics from Graylog. It provides the following methods:
205
+
206
+- `__init__`: Initializes the `MetricsService` by collecting Graylog details using `UniversalService`.
207
+- `collect_uncommitted_journal_size`: Collects the journal size of uncommitted messages from Graylog.
208
+- `_collect_metrics_uncommitted_journal_size`: Fetches the journal size of uncommitted messages from Graylog.
209
+- `collect_throughput_metrics`: Collects various Graylog metrics related to throughput.
210
+- `_collect_metrics_throughput_usage`: Fetches throughput usage from Graylog.
211
+- `_make_throughput_api_call`: Helper method for making the actual API call to retrieve the throughput metrics.
212
+- `_parse_throughput_metrics`: Helper method for parsing the returned throughput metrics.
213
+
214
+### Error Handling
215
+
216
+The script includes error handling using try/except blocks. When an error occurs, the error message is logged using loguru's `logger.error` function, and a dictionary with a failure message and success status set to False is returned.
217
+
218
+The `MetricsService` class follows good practices for encapsulating functionality related to Graylog's metrics system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.
219
+
220
::: app.services.Graylog.metrics
221
+
222
+### <span style="color:red">Graylog Services Universal</span>
223
+
224
::: app.services.Graylog.universal
backend/site/graylog/index.html
+2588
-2311
@@ -1,630 +1,1095 @@
1
+
2
<!doctype html>
3
<html lang="en" class="no-js">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width,initial-scale=1" />
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+
10
+
11
+
12
+ <link rel="prev" href="../dfiriris/">
13
+
14
+
15
+ <link rel="next" href="../wazuhmanager/">
16
7
- <link rel="prev" href="../dfiriris/" />
17
+ <link rel="icon" href="../assets/images/favicon.png">
18
+ <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.18">
19
9
- <link rel="next" href="../wazuhmanager/" />
20
11
- <link rel="icon" href="../assets/images/favicon.png" />
12
- <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.18" />
21
22
<title>Graylog - SOCFortress CoPilot</title>
23
16
- <link rel="stylesheet" href="../assets/stylesheets/main.26e3688c.min.css" />
17
-
18
- <link rel="stylesheet" href="../assets/stylesheets/palette.ecc896b0.min.css" />
19
-
20
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
21
- <link
22
- rel="stylesheet"
23
- href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"
24
- />
25
- <style>
26
- :root {
27
- --md-text-font: "Roboto";
28
- --md-code-font: "Roboto Mono";
29
- }
30
- </style>
31
-
32
- <link rel="stylesheet" href="../assets/_mkdocstrings.css" />
33
-
34
- <script>
35
- ;(__md_scope = new URL("..", location)),
36
- (__md_hash = e => [...e].reduce((e, _) => (e << 5) - e + _.charCodeAt(0), 0)),
37
- (__md_get = (e, _ = localStorage, t = __md_scope) => JSON.parse(_.getItem(t.pathname + "." + e))),
38
- (__md_set = (e, _, t = localStorage, a = __md_scope) => {
39
- try {
40
- t.setItem(a.pathname + "." + e, JSON.stringify(_))
41
- } catch (e) {}
42
- })
43
- </script>
44
- </head>
24
+
25
+
26
+ <link rel="stylesheet" href="../assets/stylesheets/main.26e3688c.min.css">
27
+
28
+
29
+ <link rel="stylesheet" href="../assets/stylesheets/palette.ecc896b0.min.css">
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
40
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
41
+ <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
42
+
43
+
44
+
45
+ <link rel="stylesheet" href="../assets/_mkdocstrings.css">
46
+
47
+ <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
48
+
49
+
50
+
51
+
52
+
53
+
54
+ </head>
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
64
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="purple">
47
- <script>
48
- var palette = __md_get("__palette")
49
- if (palette && "object" == typeof palette.color)
50
- for (var key of Object.keys(palette.color))
51
- document.body.setAttribute("data-md-color-" + key, palette.color[key])
52
- </script>
53
-
54
- <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off" />
55
- <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off" />
56
- <label class="md-overlay" for="__drawer"></label>
57
- <div data-md-component="skip">
58
- <a href="#graylog-overview" class="md-skip"> Skip to content </a>
65
+
66
+
67
+
68
+ <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
69
+
70
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
71
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
72
+ <label class="md-overlay" for="__drawer"></label>
73
+ <div data-md-component="skip">
74
+
75
+
76
+ <a href="#graylog-overview" class="md-skip">
77
+ Skip to content
78
+ </a>
79
+
80
+ </div>
81
+ <div data-md-component="announce">
82
+
83
+ </div>
84
+
85
+
86
+
87
+
88
+<header class="md-header" data-md-component="header">
89
+ <nav class="md-header__inner md-grid" aria-label="Header">
90
+ <a href=".." title="SOCFortress CoPilot" class="md-header__button md-logo" aria-label="SOCFortress CoPilot" data-md-component="logo">
91
+
92
+
93
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
94
+
95
+ </a>
96
+ <label class="md-header__button md-icon" for="__drawer">
97
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
98
+ </label>
99
+ <div class="md-header__title" data-md-component="header-title">
100
+ <div class="md-header__ellipsis">
101
+ <div class="md-header__topic">
102
+ <span class="md-ellipsis">
103
+ SOCFortress CoPilot
104
+ </span>
105
</div>
60
- <div data-md-component="announce"></div>
61
-
62
- <header class="md-header" data-md-component="header">
63
- <nav class="md-header__inner md-grid" aria-label="Header">
64
- <a
65
- href=".."
66
- title="SOCFortress CoPilot"
67
- class="md-header__button md-logo"
68
- aria-label="SOCFortress CoPilot"
69
- data-md-component="logo"
70
- >
71
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
72
- <path
73
- d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"
74
- />
75
- </svg>
76
- </a>
77
- <label class="md-header__button md-icon" for="__drawer">
78
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
79
- <path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z" />
80
- </svg>
81
- </label>
82
- <div class="md-header__title" data-md-component="header-title">
83
- <div class="md-header__ellipsis">
84
- <div class="md-header__topic">
85
- <span class="md-ellipsis"> SOCFortress CoPilot </span>
86
- </div>
87
- <div class="md-header__topic" data-md-component="header-topic">
88
- <span class="md-ellipsis"> Graylog </span>
89
- </div>
90
- </div>
91
- </div>
106
+ <div class="md-header__topic" data-md-component="header-topic">
107
+ <span class="md-ellipsis">
108
+
109
+ Graylog
110
+
111
+ </span>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+
117
+ <form class="md-header__option" data-md-component="palette">
118
+
119
+
120
+
121
+
122
+ <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="purple" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
123
+
124
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
125
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
126
+ </label>
127
+
128
+
129
+
130
+
131
+
132
+ <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="lime" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
133
+
134
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
135
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z"/></svg>
136
+ </label>
137
+
138
+
139
+ </form>
140
+
141
+
142
+
143
+
144
+
145
+ </nav>
146
+
147
+</header>
148
+
149
+ <div class="md-container" data-md-component="container">
150
+
151
+
152
+
153
+
154
+
155
+<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
156
+ <div class="md-grid">
157
+ <ul class="md-tabs__list">
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <li class="md-tabs__item">
165
+ <a href=".." class="md-tabs__link">
166
+ Home
167
+ </a>
168
+ </li>
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+ <li class="md-tabs__item">
177
+ <a href="../connectors/" class="md-tabs__link">
178
+ Connectors
179
+ </a>
180
+ </li>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+ <li class="md-tabs__item">
189
+ <a href="../agents/" class="md-tabs__link">
190
+ Agents
191
+ </a>
192
+ </li>
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <li class="md-tabs__item">
201
+ <a href="../wazuhindexer/" class="md-tabs__link">
202
+ Wazuh-Indexer
203
+ </a>
204
+ </li>
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <li class="md-tabs__item">
213
+ <a href="../dfiriris/" class="md-tabs__link">
214
+ Dfir-Iris
215
+ </a>
216
+ </li>
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <li class="md-tabs__item">
227
+ <a href="./" class="md-tabs__link md-tabs__link--active">
228
+ Graylog
229
+ </a>
230
+ </li>
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+ <li class="md-tabs__item">
239
+ <a href="../wazuhmanager/" class="md-tabs__link">
240
+ Wazuh-Manager
241
+ </a>
242
+ </li>
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ <li class="md-tabs__item">
251
+ <a href="../velociraptor/" class="md-tabs__link">
252
+ Velociraptor
253
+ </a>
254
+ </li>
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+ <li class="md-tabs__item">
263
+ <a href="../shuffle/" class="md-tabs__link">
264
+ Shuffle
265
+ </a>
266
+ </li>
267
+
268
+
269
+ </ul>
270
+ </div>
271
+</nav>
272
+
273
+
274
+
275
+ <main class="md-main" data-md-component="main">
276
+ <div class="md-main__inner md-grid">
277
+
278
+
279
+
280
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
281
+ <div class="md-sidebar__scrollwrap">
282
+ <div class="md-sidebar__inner">
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
291
+ <label class="md-nav__title" for="__drawer">
292
+ <a href=".." title="SOCFortress CoPilot" class="md-nav__button md-logo" aria-label="SOCFortress CoPilot" data-md-component="logo">
293
+
294
+
295
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
296
+
297
+ </a>
298
+ SOCFortress CoPilot
299
+ </label>
300
+
301
+ <ul class="md-nav__list" data-md-scrollfix>
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+ <li class="md-nav__item">
311
+ <a href=".." class="md-nav__link">
312
+ Home
313
+ </a>
314
+ </li>
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+ <li class="md-nav__item">
326
+ <a href="../connectors/" class="md-nav__link">
327
+ Connectors
328
+ </a>
329
+ </li>
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+ <li class="md-nav__item">
341
+ <a href="../agents/" class="md-nav__link">
342
+ Agents
343
+ </a>
344
+ </li>
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+ <li class="md-nav__item">
356
+ <a href="../wazuhindexer/" class="md-nav__link">
357
+ Wazuh-Indexer
358
+ </a>
359
+ </li>
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+ <li class="md-nav__item">
371
+ <a href="../dfiriris/" class="md-nav__link">
372
+ Dfir-Iris
373
+ </a>
374
+ </li>
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+ <li class="md-nav__item md-nav__item--active">
388
+
389
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
390
+
391
+
392
+
393
+ <label class="md-nav__link md-nav__link--active" for="__toc">
394
+ Graylog
395
+ <span class="md-nav__icon md-icon"></span>
396
+ </label>
397
+
398
+ <a href="./" class="md-nav__link md-nav__link--active">
399
+ Graylog
400
+ </a>
401
+
402
+
403
+
404
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
405
+
406
+
407
+
408
+
409
+ <label class="md-nav__title" for="__toc">
410
+ <span class="md-nav__icon md-icon"></span>
411
+ Table of contents
412
+ </label>
413
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
414
+
415
+ <li class="md-nav__item">
416
+ <a href="#graylog-overview" class="md-nav__link">
417
+ Graylog Overview
418
+ </a>
419
+
420
+ <nav class="md-nav" aria-label="Graylog Overview">
421
+ <ul class="md-nav__list">
422
+
423
+ <li class="md-nav__item">
424
+ <a href="#graylog-model" class="md-nav__link">
425
+ Graylog Model
426
+ </a>
427
+
428
+</li>
429
+
430
+ </ul>
431
+ </nav>
432
+
433
+</li>
434
+
435
+ <li class="md-nav__item">
436
+ <a href="#graylogpy" class="md-nav__link">
437
+ graylog.py
438
+ </a>
439
93
- <form class="md-header__option" data-md-component="palette">
94
- <input
95
- class="md-option"
96
- data-md-color-media=""
97
- data-md-color-scheme="default"
98
- data-md-color-primary="teal"
99
- data-md-color-accent="purple"
100
- aria-label="Switch to dark mode"
101
- type="radio"
102
- name="__palette"
103
- id="__palette_1"
104
- />
105
-
106
- <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
107
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
108
- <path
109
- d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"
110
- />
111
- </svg>
112
- </label>
113
-
114
- <input
115
- class="md-option"
116
- data-md-color-media=""
117
- data-md-color-scheme="slate"
118
- data-md-color-primary="teal"
119
- data-md-color-accent="lime"
120
- aria-label="Switch to light mode"
121
- type="radio"
122
- name="__palette"
123
- id="__palette_2"
124
- />
125
-
126
- <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
127
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
128
- <path
129
- d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z"
130
- />
131
- </svg>
132
- </label>
133
- </form>
134
- </nav>
135
- </header>
136
-
137
- <div class="md-container" data-md-component="container">
138
- <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
139
- <div class="md-grid">
140
- <ul class="md-tabs__list">
141
- <li class="md-tabs__item">
142
- <a href=".." class="md-tabs__link"> Home </a>
143
- </li>
144
-
145
- <li class="md-tabs__item">
146
- <a href="../connectors/" class="md-tabs__link"> Connectors </a>
147
- </li>
148
-
149
- <li class="md-tabs__item">
150
- <a href="../agents/" class="md-tabs__link"> Agents </a>
151
- </li>
152
-
153
- <li class="md-tabs__item">
154
- <a href="../wazuhindexer/" class="md-tabs__link"> Wazuh-Indexer </a>
155
- </li>
156
-
157
- <li class="md-tabs__item">
158
- <a href="../dfiriris/" class="md-tabs__link"> Dfir-Iris </a>
159
- </li>
160
-
161
- <li class="md-tabs__item">
162
- <a href="./" class="md-tabs__link md-tabs__link--active"> Graylog </a>
163
- </li>
164
-
165
- <li class="md-tabs__item">
166
- <a href="../wazuhmanager/" class="md-tabs__link"> Wazuh-Manager </a>
167
- </li>
168
-
169
- <li class="md-tabs__item">
170
- <a href="../velociraptor/" class="md-tabs__link"> Velociraptor </a>
171
- </li>
172
-
173
- <li class="md-tabs__item">
174
- <a href="../shuffle/" class="md-tabs__link"> Shuffle </a>
175
- </li>
176
- </ul>
440
+ <nav class="md-nav" aria-label="graylog.py">
441
+ <ul class="md-nav__list">
442
+
443
+ <li class="md-nav__item">
444
+ <a href="#graylogmetricsallocation-class" class="md-nav__link">
445
+ GraylogMetricsAllocation Class
446
+ </a>
447
+
448
+</li>
449
+
450
+ <li class="md-nav__item">
451
+ <a href="#graylogmetricsallocationschema-class" class="md-nav__link">
452
+ GraylogMetricsAllocationSchema Class
453
+ </a>
454
+
455
+</li>
456
+
457
+ <li class="md-nav__item">
458
+ <a href="#app.models.graylog" class="md-nav__link">
459
+ app.models.graylog
460
+ </a>
461
+
462
+</li>
463
+
464
+ <li class="md-nav__item">
465
+ <a href="#app.models.graylog.GraylogMetricsAllocation" class="md-nav__link">
466
+ GraylogMetricsAllocation
467
+ </a>
468
+
469
+ <nav class="md-nav" aria-label="GraylogMetricsAllocation">
470
+ <ul class="md-nav__list">
471
+
472
+ <li class="md-nav__item">
473
+ <a href="#app.models.graylog.GraylogMetricsAllocation.__init__" class="md-nav__link">
474
+ __init__()
475
+ </a>
476
+
477
+</li>
478
+
479
+ <li class="md-nav__item">
480
+ <a href="#app.models.graylog.GraylogMetricsAllocation.__repr__" class="md-nav__link">
481
+ __repr__()
482
+ </a>
483
+
484
+</li>
485
+
486
+ </ul>
487
+ </nav>
488
+
489
+</li>
490
+
491
+ <li class="md-nav__item">
492
+ <a href="#app.models.graylog.GraylogMetricsAllocationSchema" class="md-nav__link">
493
+ GraylogMetricsAllocationSchema
494
+ </a>
495
+
496
+ <nav class="md-nav" aria-label="GraylogMetricsAllocationSchema">
497
+ <ul class="md-nav__list">
498
+
499
+ <li class="md-nav__item">
500
+ <a href="#app.models.graylog.GraylogMetricsAllocationSchema.Meta" class="md-nav__link">
501
+ Meta
502
+ </a>
503
+
504
+</li>
505
+
506
+ <li class="md-nav__item">
507
+ <a href="#graylog-routes" class="md-nav__link">
508
+ Graylog Routes
509
+ </a>
510
+
511
+</li>
512
+
513
+ </ul>
514
+ </nav>
515
+
516
+</li>
517
+
518
+ <li class="md-nav__item">
519
+ <a href="#graylogpy_1" class="md-nav__link">
520
+ graylog.py
521
+ </a>
522
+
523
+ <nav class="md-nav" aria-label="graylog.py">
524
+ <ul class="md-nav__list">
525
+
526
+ <li class="md-nav__item">
527
+ <a href="#imports" class="md-nav__link">
528
+ Imports
529
+ </a>
530
+
531
+</li>
532
+
533
+ <li class="md-nav__item">
534
+ <a href="#blueprint" class="md-nav__link">
535
+ Blueprint
536
+ </a>
537
+
538
+</li>
539
+
540
+ </ul>
541
+ </nav>
542
+
543
+</li>
544
+
545
+ <li class="md-nav__item">
546
+ <a href="#endpoints" class="md-nav__link">
547
+ Endpoints
548
+ </a>
549
+
550
+</li>
551
+
552
+ <li class="md-nav__item">
553
+ <a href="#services" class="md-nav__link">
554
+ Services
555
+ </a>
556
+
557
+</li>
558
+
559
+ <li class="md-nav__item">
560
+ <a href="#app.routes.graylog" class="md-nav__link">
561
+ app.routes.graylog
562
+ </a>
563
+
564
+</li>
565
+
566
+ <li class="md-nav__item">
567
+ <a href="#app.routes.graylog.delete_index" class="md-nav__link">
568
+ delete_index()
569
+ </a>
570
+
571
+</li>
572
+
573
+ <li class="md-nav__item">
574
+ <a href="#app.routes.graylog.get_indices" class="md-nav__link">
575
+ get_indices()
576
+ </a>
577
+
578
+</li>
579
+
580
+ <li class="md-nav__item">
581
+ <a href="#app.routes.graylog.get_inputs" class="md-nav__link">
582
+ get_inputs()
583
+ </a>
584
+
585
+</li>
586
+
587
+ <li class="md-nav__item">
588
+ <a href="#app.routes.graylog.get_messages" class="md-nav__link">
589
+ get_messages()
590
+ </a>
591
+
592
+</li>
593
+
594
+ <li class="md-nav__item">
595
+ <a href="#app.routes.graylog.get_metrics" class="md-nav__link">
596
+ get_metrics()
597
+ </a>
598
+
599
+ <nav class="md-nav" aria-label="get_metrics()">
600
+ <ul class="md-nav__list">
601
+
602
+ <li class="md-nav__item">
603
+ <a href="#graylog-services-index" class="md-nav__link">
604
+ Graylog Services Index
605
+ </a>
606
+
607
+</li>
608
+
609
+ </ul>
610
+ </nav>
611
+
612
+</li>
613
+
614
+ <li class="md-nav__item">
615
+ <a href="#indexservice-class" class="md-nav__link">
616
+ IndexService Class
617
+ </a>
618
+
619
+ <nav class="md-nav" aria-label="IndexService Class">
620
+ <ul class="md-nav__list">
621
+
622
+ <li class="md-nav__item">
623
+ <a href="#imports_1" class="md-nav__link">
624
+ Imports
625
+ </a>
626
+
627
+</li>
628
+
629
+ <li class="md-nav__item">
630
+ <a href="#class-definition-indexservice" class="md-nav__link">
631
+ Class Definition: IndexService
632
+ </a>
633
+
634
+</li>
635
+
636
+ <li class="md-nav__item">
637
+ <a href="#error-handling" class="md-nav__link">
638
+ Error Handling
639
+ </a>
640
+
641
+</li>
642
+
643
+ </ul>
644
+ </nav>
645
+
646
+</li>
647
+
648
+ <li class="md-nav__item">
649
+ <a href="#app.services.Graylog.index" class="md-nav__link">
650
+ app.services.Graylog.index
651
+ </a>
652
+
653
+</li>
654
+
655
+ <li class="md-nav__item">
656
+ <a href="#app.services.Graylog.index.IndexService" class="md-nav__link">
657
+ IndexService
658
+ </a>
659
+
660
+ <nav class="md-nav" aria-label="IndexService">
661
+ <ul class="md-nav__list">
662
+
663
+ <li class="md-nav__item">
664
+ <a href="#app.services.Graylog.index.IndexService.__init__" class="md-nav__link">
665
+ __init__()
666
+ </a>
667
+
668
+</li>
669
+
670
+ <li class="md-nav__item">
671
+ <a href="#app.services.Graylog.index.IndexService.collect_indices" class="md-nav__link">
672
+ collect_indices()
673
+ </a>
674
+
675
+</li>
676
+
677
+ <li class="md-nav__item">
678
+ <a href="#app.services.Graylog.index.IndexService.delete_index" class="md-nav__link">
679
+ delete_index()
680
+ </a>
681
+
682
+</li>
683
+
684
+ <li class="md-nav__item">
685
+ <a href="#graylog-services-inputs" class="md-nav__link">
686
+ Graylog Services Inputs
687
+ </a>
688
+
689
+</li>
690
+
691
+ </ul>
692
+ </nav>
693
+
694
+</li>
695
+
696
+ <li class="md-nav__item">
697
+ <a href="#inputsservice-class" class="md-nav__link">
698
+ InputsService Class
699
+ </a>
700
+
701
+ <nav class="md-nav" aria-label="InputsService Class">
702
+ <ul class="md-nav__list">
703
+
704
+ <li class="md-nav__item">
705
+ <a href="#imports_2" class="md-nav__link">
706
+ Imports
707
+ </a>
708
+
709
+</li>
710
+
711
+ <li class="md-nav__item">
712
+ <a href="#class-definition-inputsservice" class="md-nav__link">
713
+ Class Definition: InputsService
714
+ </a>
715
+
716
+</li>
717
+
718
+ <li class="md-nav__item">
719
+ <a href="#error-handling_1" class="md-nav__link">
720
+ Error Handling
721
+ </a>
722
+
723
+</li>
724
+
725
+ </ul>
726
+ </nav>
727
+
728
+</li>
729
+
730
+ <li class="md-nav__item">
731
+ <a href="#app.services.Graylog.inputs" class="md-nav__link">
732
+ app.services.Graylog.inputs
733
+ </a>
734
+
735
+</li>
736
+
737
+ <li class="md-nav__item">
738
+ <a href="#app.services.Graylog.inputs.InputsService" class="md-nav__link">
739
+ InputsService
740
+ </a>
741
+
742
+ <nav class="md-nav" aria-label="InputsService">
743
+ <ul class="md-nav__list">
744
+
745
+ <li class="md-nav__item">
746
+ <a href="#app.services.Graylog.inputs.InputsService.__init__" class="md-nav__link">
747
+ __init__()
748
+ </a>
749
+
750
+</li>
751
+
752
+ <li class="md-nav__item">
753
+ <a href="#app.services.Graylog.inputs.InputsService.collect_configured_inputs" class="md-nav__link">
754
+ collect_configured_inputs()
755
+ </a>
756
+
757
+</li>
758
+
759
+ <li class="md-nav__item">
760
+ <a href="#app.services.Graylog.inputs.InputsService.collect_running_inputs" class="md-nav__link">
761
+ collect_running_inputs()
762
+ </a>
763
+
764
+</li>
765
+
766
+ <li class="md-nav__item">
767
+ <a href="#graylog-services-messages" class="md-nav__link">
768
+ Graylog Services Messages
769
+ </a>
770
+
771
+</li>
772
+
773
+ </ul>
774
+ </nav>
775
+
776
+</li>
777
+
778
+ <li class="md-nav__item">
779
+ <a href="#messagesservice-class" class="md-nav__link">
780
+ MessagesService Class
781
+ </a>
782
+
783
+ <nav class="md-nav" aria-label="MessagesService Class">
784
+ <ul class="md-nav__list">
785
+
786
+ <li class="md-nav__item">
787
+ <a href="#imports_3" class="md-nav__link">
788
+ Imports
789
+ </a>
790
+
791
+</li>
792
+
793
+ <li class="md-nav__item">
794
+ <a href="#class-definition-messagesservice" class="md-nav__link">
795
+ Class Definition: MessagesService
796
+ </a>
797
+
798
+</li>
799
+
800
+ <li class="md-nav__item">
801
+ <a href="#error-handling_2" class="md-nav__link">
802
+ Error Handling
803
+ </a>
804
+
805
+</li>
806
+
807
+ </ul>
808
+ </nav>
809
+
810
+</li>
811
+
812
+ <li class="md-nav__item">
813
+ <a href="#app.services.Graylog.messages" class="md-nav__link">
814
+ app.services.Graylog.messages
815
+ </a>
816
+
817
+</li>
818
+
819
+ <li class="md-nav__item">
820
+ <a href="#app.services.Graylog.messages.MessagesService" class="md-nav__link">
821
+ MessagesService
822
+ </a>
823
+
824
+ <nav class="md-nav" aria-label="MessagesService">
825
+ <ul class="md-nav__list">
826
+
827
+ <li class="md-nav__item">
828
+ <a href="#app.services.Graylog.messages.MessagesService.collect_messages" class="md-nav__link">
829
+ collect_messages()
830
+ </a>
831
+
832
+</li>
833
+
834
+ <li class="md-nav__item">
835
+ <a href="#graylog-services-metrics" class="md-nav__link">
836
+ Graylog Services Metrics
837
+ </a>
838
+
839
+</li>
840
+
841
+ </ul>
842
+ </nav>
843
+
844
+</li>
845
+
846
+ <li class="md-nav__item">
847
+ <a href="#metricsservice-class" class="md-nav__link">
848
+ MetricsService Class
849
+ </a>
850
+
851
+ <nav class="md-nav" aria-label="MetricsService Class">
852
+ <ul class="md-nav__list">
853
+
854
+ <li class="md-nav__item">
855
+ <a href="#imports_4" class="md-nav__link">
856
+ Imports
857
+ </a>
858
+
859
+</li>
860
+
861
+ <li class="md-nav__item">
862
+ <a href="#class-definition-metricsservice" class="md-nav__link">
863
+ Class Definition: MetricsService
864
+ </a>
865
+
866
+</li>
867
+
868
+ <li class="md-nav__item">
869
+ <a href="#error-handling_3" class="md-nav__link">
870
+ Error Handling
871
+ </a>
872
+
873
+</li>
874
+
875
+ </ul>
876
+ </nav>
877
+
878
+</li>
879
+
880
+ <li class="md-nav__item">
881
+ <a href="#app.services.Graylog.metrics" class="md-nav__link">
882
+ app.services.Graylog.metrics
883
+ </a>
884
+
885
+</li>
886
+
887
+ <li class="md-nav__item">
888
+ <a href="#app.services.Graylog.metrics.MetricsService" class="md-nav__link">
889
+ MetricsService
890
+ </a>
891
+
892
+ <nav class="md-nav" aria-label="MetricsService">
893
+ <ul class="md-nav__list">
894
+
895
+ <li class="md-nav__item">
896
+ <a href="#app.services.Graylog.metrics.MetricsService.__init__" class="md-nav__link">
897
+ __init__()
898
+ </a>
899
+
900
+</li>
901
+
902
+ <li class="md-nav__item">
903
+ <a href="#app.services.Graylog.metrics.MetricsService.collect_throughput_metrics" class="md-nav__link">
904
+ collect_throughput_metrics()
905
+ </a>
906
+
907
+</li>
908
+
909
+ <li class="md-nav__item">
910
+ <a href="#app.services.Graylog.metrics.MetricsService.collect_uncommitted_journal_size" class="md-nav__link">
911
+ collect_uncommitted_journal_size()
912
+ </a>
913
+
914
+</li>
915
+
916
+ <li class="md-nav__item">
917
+ <a href="#graylog-services-universal" class="md-nav__link">
918
+ Graylog Services Universal
919
+ </a>
920
+
921
+</li>
922
+
923
+ </ul>
924
+ </nav>
925
+
926
+</li>
927
+
928
+ <li class="md-nav__item">
929
+ <a href="#app.services.Graylog.universal" class="md-nav__link">
930
+ app.services.Graylog.universal
931
+ </a>
932
+
933
+</li>
934
+
935
+ <li class="md-nav__item">
936
+ <a href="#app.services.Graylog.universal.UniversalService" class="md-nav__link">
937
+ UniversalService
938
+ </a>
939
+
940
+ <nav class="md-nav" aria-label="UniversalService">
941
+ <ul class="md-nav__list">
942
+
943
+ <li class="md-nav__item">
944
+ <a href="#app.services.Graylog.universal.UniversalService.collect_graylog_details" class="md-nav__link">
945
+ collect_graylog_details()
946
+ </a>
947
+
948
+</li>
949
+
950
+ </ul>
951
+ </nav>
952
+
953
+</li>
954
+
955
+ </ul>
956
+ </nav>
957
+
958
+</li>
959
+
960
+ </ul>
961
+
962
+</nav>
963
+
964
+ </li>
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+ <li class="md-nav__item">
976
+ <a href="../wazuhmanager/" class="md-nav__link">
977
+ Wazuh-Manager
978
+ </a>
979
+ </li>
980
+
981
+
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+ <li class="md-nav__item">
991
+ <a href="../velociraptor/" class="md-nav__link">
992
+ Velociraptor
993
+ </a>
994
+ </li>
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+ <li class="md-nav__item">
1006
+ <a href="../shuffle/" class="md-nav__link">
1007
+ Shuffle
1008
+ </a>
1009
+ </li>
1010
+
1011
+
1012
+
1013
+ </ul>
1014
+</nav>
1015
+ </div>
1016
</div>
178
- </nav>
179
-
180
- <main class="md-main" data-md-component="main">
181
- <div class="md-main__inner md-grid">
182
- <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
183
- <div class="md-sidebar__scrollwrap">
184
- <div class="md-sidebar__inner">
185
- <nav
186
- class="md-nav md-nav--primary md-nav--lifted md-nav--integrated"
187
- aria-label="Navigation"
188
- data-md-level="0"
189
- >
190
- <label class="md-nav__title" for="__drawer">
191
- <a
192
- href=".."
193
- title="SOCFortress CoPilot"
194
- class="md-nav__button md-logo"
195
- aria-label="SOCFortress CoPilot"
196
- data-md-component="logo"
197
- >
198
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
199
- <path
200
- d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"
201
- />
202
- </svg>
203
- </a>
204
- SOCFortress CoPilot
205
- </label>
206
-
207
- <ul class="md-nav__list" data-md-scrollfix>
208
- <li class="md-nav__item">
209
- <a href=".." class="md-nav__link"> Home </a>
210
- </li>
211
-
212
- <li class="md-nav__item">
213
- <a href="../connectors/" class="md-nav__link"> Connectors </a>
214
- </li>
215
-
216
- <li class="md-nav__item">
217
- <a href="../agents/" class="md-nav__link"> Agents </a>
218
- </li>
219
-
220
- <li class="md-nav__item">
221
- <a href="../wazuhindexer/" class="md-nav__link"> Wazuh-Indexer </a>
222
- </li>
223
-
224
- <li class="md-nav__item">
225
- <a href="../dfiriris/" class="md-nav__link"> Dfir-Iris </a>
226
- </li>
227
-
228
- <li class="md-nav__item md-nav__item--active">
229
- <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc" />
230
-
231
- <label class="md-nav__link md-nav__link--active" for="__toc">
232
- Graylog
233
- <span class="md-nav__icon md-icon"></span>
234
- </label>
235
-
236
- <a href="./" class="md-nav__link md-nav__link--active"> Graylog </a>
237
-
238
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
239
- <label class="md-nav__title" for="__toc">
240
- <span class="md-nav__icon md-icon"></span>
241
- Table of contents
242
- </label>
243
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
244
- <li class="md-nav__item">
245
- <a href="#graylog-overview" class="md-nav__link">
246
- Graylog Overview
247
- </a>
248
-
249
- <nav class="md-nav" aria-label="Graylog Overview">
250
- <ul class="md-nav__list">
251
- <li class="md-nav__item">
252
- <a href="#graylog-model" class="md-nav__link">
253
- Graylog Model
254
- </a>
255
- </li>
256
- </ul>
257
- </nav>
258
- </li>
259
-
260
- <li class="md-nav__item">
261
- <a href="#app.models.graylog" class="md-nav__link">
262
- app.models.graylog
263
- </a>
264
- </li>
265
-
266
- <li class="md-nav__item">
267
- <a
268
- href="#app.models.graylog.GraylogMetricsAllocation"
269
- class="md-nav__link"
270
- >
271
- GraylogMetricsAllocation
272
- </a>
273
-
274
- <nav class="md-nav" aria-label="GraylogMetricsAllocation">
275
- <ul class="md-nav__list">
276
- <li class="md-nav__item">
277
- <a
278
- href="#app.models.graylog.GraylogMetricsAllocation.__init__"
279
- class="md-nav__link"
280
- >
281
- __init__()
282
- </a>
283
- </li>
284
-
285
- <li class="md-nav__item">
286
- <a
287
- href="#app.models.graylog.GraylogMetricsAllocation.__repr__"
288
- class="md-nav__link"
289
- >
290
- __repr__()
291
- </a>
292
- </li>
293
- </ul>
294
- </nav>
295
- </li>
296
-
297
- <li class="md-nav__item">
298
- <a
299
- href="#app.models.graylog.GraylogMetricsAllocationSchema"
300
- class="md-nav__link"
301
- >
302
- GraylogMetricsAllocationSchema
303
- </a>
304
-
305
- <nav class="md-nav" aria-label="GraylogMetricsAllocationSchema">
306
- <ul class="md-nav__list">
307
- <li class="md-nav__item">
308
- <a
309
- href="#app.models.graylog.GraylogMetricsAllocationSchema.Meta"
310
- class="md-nav__link"
311
- >
312
- Meta
313
- </a>
314
- </li>
315
-
316
- <li class="md-nav__item">
317
- <a href="#graylog-routes" class="md-nav__link">
318
- Graylog Routes
319
- </a>
320
- </li>
321
- </ul>
322
- </nav>
323
- </li>
324
-
325
- <li class="md-nav__item">
326
- <a href="#app.routes.graylog" class="md-nav__link">
327
- app.routes.graylog
328
- </a>
329
- </li>
330
-
331
- <li class="md-nav__item">
332
- <a href="#app.routes.graylog.delete_index" class="md-nav__link">
333
- delete_index()
334
- </a>
335
- </li>
336
-
337
- <li class="md-nav__item">
338
- <a href="#app.routes.graylog.get_indices" class="md-nav__link">
339
- get_indices()
340
- </a>
341
- </li>
342
-
343
- <li class="md-nav__item">
344
- <a href="#app.routes.graylog.get_inputs" class="md-nav__link">
345
- get_inputs()
346
- </a>
347
- </li>
348
-
349
- <li class="md-nav__item">
350
- <a href="#app.routes.graylog.get_messages" class="md-nav__link">
351
- get_messages()
352
- </a>
353
- </li>
354
-
355
- <li class="md-nav__item">
356
- <a href="#app.routes.graylog.get_metrics" class="md-nav__link">
357
- get_metrics()
358
- </a>
359
-
360
- <nav class="md-nav" aria-label="get_metrics()">
361
- <ul class="md-nav__list">
362
- <li class="md-nav__item">
363
- <a href="#graylog-services" class="md-nav__link">
364
- Graylog Services
365
- </a>
366
- </li>
367
- </ul>
368
- </nav>
369
- </li>
370
-
371
- <li class="md-nav__item">
372
- <a href="#app.services.Graylog.index" class="md-nav__link">
373
- app.services.Graylog.index
374
- </a>
375
- </li>
376
-
377
- <li class="md-nav__item">
378
- <a
379
- href="#app.services.Graylog.index.IndexService"
380
- class="md-nav__link"
381
- >
382
- IndexService
383
- </a>
384
-
385
- <nav class="md-nav" aria-label="IndexService">
386
- <ul class="md-nav__list">
387
- <li class="md-nav__item">
388
- <a
389
- href="#app.services.Graylog.index.IndexService.__init__"
390
- class="md-nav__link"
391
- >
392
- __init__()
393
- </a>
394
- </li>
395
-
396
- <li class="md-nav__item">
397
- <a
398
- href="#app.services.Graylog.index.IndexService.collect_indices"
399
- class="md-nav__link"
400
- >
401
- collect_indices()
402
- </a>
403
- </li>
404
-
405
- <li class="md-nav__item">
406
- <a
407
- href="#app.services.Graylog.index.IndexService.delete_index"
408
- class="md-nav__link"
409
- >
410
- delete_index()
411
- </a>
412
- </li>
413
- </ul>
414
- </nav>
415
- </li>
416
-
417
- <li class="md-nav__item">
418
- <a href="#app.services.Graylog.inputs" class="md-nav__link">
419
- app.services.Graylog.inputs
420
- </a>
421
- </li>
422
-
423
- <li class="md-nav__item">
424
- <a
425
- href="#app.services.Graylog.inputs.InputsService"
426
- class="md-nav__link"
427
- >
428
- InputsService
429
- </a>
430
-
431
- <nav class="md-nav" aria-label="InputsService">
432
- <ul class="md-nav__list">
433
- <li class="md-nav__item">
434
- <a
435
- href="#app.services.Graylog.inputs.InputsService.__init__"
436
- class="md-nav__link"
437
- >
438
- __init__()
439
- </a>
440
- </li>
441
-
442
- <li class="md-nav__item">
443
- <a
444
- href="#app.services.Graylog.inputs.InputsService.collect_configured_inputs"
445
- class="md-nav__link"
446
- >
447
- collect_configured_inputs()
448
- </a>
449
- </li>
450
-
451
- <li class="md-nav__item">
452
- <a
453
- href="#app.services.Graylog.inputs.InputsService.collect_running_inputs"
454
- class="md-nav__link"
455
- >
456
- collect_running_inputs()
457
- </a>
458
- </li>
459
- </ul>
460
- </nav>
461
- </li>
462
-
463
- <li class="md-nav__item">
464
- <a href="#app.services.Graylog.messages" class="md-nav__link">
465
- app.services.Graylog.messages
466
- </a>
467
- </li>
468
-
469
- <li class="md-nav__item">
470
- <a
471
- href="#app.services.Graylog.messages.MessagesService"
472
- class="md-nav__link"
473
- >
474
- MessagesService
475
- </a>
476
-
477
- <nav class="md-nav" aria-label="MessagesService">
478
- <ul class="md-nav__list">
479
- <li class="md-nav__item">
480
- <a
481
- href="#app.services.Graylog.messages.MessagesService.collect_messages"
482
- class="md-nav__link"
483
- >
484
- collect_messages()
485
- </a>
486
- </li>
487
- </ul>
488
- </nav>
489
- </li>
490
-
491
- <li class="md-nav__item">
492
- <a href="#app.services.Graylog.metrics" class="md-nav__link">
493
- app.services.Graylog.metrics
494
- </a>
495
- </li>
496
-
497
- <li class="md-nav__item">
498
- <a
499
- href="#app.services.Graylog.metrics.MetricsService"
500
- class="md-nav__link"
501
- >
502
- MetricsService
503
- </a>
504
-
505
- <nav class="md-nav" aria-label="MetricsService">
506
- <ul class="md-nav__list">
507
- <li class="md-nav__item">
508
- <a
509
- href="#app.services.Graylog.metrics.MetricsService.__init__"
510
- class="md-nav__link"
511
- >
512
- __init__()
513
- </a>
514
- </li>
515
-
516
- <li class="md-nav__item">
517
- <a
518
- href="#app.services.Graylog.metrics.MetricsService.collect_throughput_metrics"
519
- class="md-nav__link"
520
- >
521
- collect_throughput_metrics()
522
- </a>
523
- </li>
524
-
525
- <li class="md-nav__item">
526
- <a
527
- href="#app.services.Graylog.metrics.MetricsService.collect_uncommitted_journal_size"
528
- class="md-nav__link"
529
- >
530
- collect_uncommitted_journal_size()
531
- </a>
532
- </li>
533
- </ul>
534
- </nav>
535
- </li>
536
-
537
- <li class="md-nav__item">
538
- <a href="#app.services.Graylog.universal" class="md-nav__link">
539
- app.services.Graylog.universal
540
- </a>
541
- </li>
542
-
543
- <li class="md-nav__item">
544
- <a
545
- href="#app.services.Graylog.universal.UniversalService"
546
- class="md-nav__link"
547
- >
548
- UniversalService
549
- </a>
550
-
551
- <nav class="md-nav" aria-label="UniversalService">
552
- <ul class="md-nav__list">
553
- <li class="md-nav__item">
554
- <a
555
- href="#app.services.Graylog.universal.UniversalService.collect_graylog_details"
556
- class="md-nav__link"
557
- >
558
- collect_graylog_details()
559
- </a>
560
- </li>
561
- </ul>
562
- </nav>
563
- </li>
564
- </ul>
565
- </nav>
566
- </li>
567
-
568
- <li class="md-nav__item">
569
- <a href="../wazuhmanager/" class="md-nav__link"> Wazuh-Manager </a>
570
- </li>
571
-
572
- <li class="md-nav__item">
573
- <a href="../velociraptor/" class="md-nav__link"> Velociraptor </a>
574
- </li>
575
-
576
- <li class="md-nav__item">
577
- <a href="../shuffle/" class="md-nav__link"> Shuffle </a>
578
- </li>
579
- </ul>
580
- </nav>
581
- </div>
582
- </div>
583
- </div>
584
-
585
- <div class="md-content" data-md-component="content">
586
- <article class="md-content__inner md-typeset">
587
- <h1>Graylog</h1>
588
-
589
- <h2 id="graylog-overview">Graylog Overview</h2>
590
- <h3 id="graylog-model"><span style="color: blue">Graylog Model</span></h3>
591
-
592
- <div class="doc doc-object doc-module">
593
- <a id="app.models.graylog"></a>
594
- <div class="doc doc-contents first">
595
- <div class="doc doc-children">
596
- <div class="doc doc-object doc-class">
597
- <h2
598
- id="app.models.graylog.GraylogMetricsAllocation"
599
- class="doc doc-heading"
600
- >
601
- <code>GraylogMetricsAllocation</code>
602
- </h2>
603
-
604
- <div class="doc doc-contents">
605
- <p class="doc doc-class-bases">
606
- Bases:
607
- <code
608
- ><span title="app.db">db</span>.<span title="app.db.Model"
609
- >Model</span
610
- ></code
611
- >
612
- </p>
613
-
614
- <p>
615
- Class for Graylog metrics allocation which stores throughput
616
- metrics. The timestamp is generated for each entry and it is invoked
617
- every 5 minutes. This class inherits from SQLAlchemy's Model class.
618
- </p>
619
-
620
- <details class="quote">
621
- <summary>Source code in <code>app\models\graylog.py</code></summary>
622
- <div class="highlight">
623
- <table class="highlighttable">
624
- <tr>
625
- <td class="linenos">
626
- <div class="linenodiv">
627
- <pre><span></span><span class="normal"><a href="#__codelineno-0-13">13</a></span>
1017
+ </div>
1018
+
1019
+
1020
+
1021
+
1022
+ <div class="md-content" data-md-component="content">
1023
+ <article class="md-content__inner md-typeset">
1024
+
1025
+
1026
+
1027
+
1028
+<h2 id="graylog-overview">Graylog Overview</h2>
1029
+<h3 id="graylog-model"><span style="color:blue">Graylog Model</span></h3>
1030
+<h1 id="graylogpy">graylog.py</h1>
1031
+<p>The provided Python file <code>graylog.py</code> defines a database model and a corresponding schema for storing, retrieving, and manipulating Graylog metrics data. This file is likely part of a larger system where Graylog is used for log management.</p>
1032
+<p>Here is a summary of what the script does:</p>
1033
+<h2 id="graylogmetricsallocation-class">GraylogMetricsAllocation Class</h2>
1034
+<p>The <code>GraylogMetricsAllocation</code> class is a SQLAlchemy model, which corresponds to a database table <code>graylog_metrics_allocation</code>. This table stores throughput metrics from Graylog. The table includes the following fields:</p>
1035
+<ul>
1036
+<li><code>id</code>: The primary key of the table.</li>
1037
+<li><code>input_usage</code>: The input usage value.</li>
1038
+<li><code>output_usage</code>: The output usage value.</li>
1039
+<li><code>processor_usage</code>: The processor usage value.</li>
1040
+<li><code>input_1_sec_rate</code>: The input per second rate.</li>
1041
+<li><code>output_1_sec_rate</code>: The output per second rate.</li>
1042
+<li><code>total_input</code>: The total input value.</li>
1043
+<li><code>total_output</code>: The total output value.</li>
1044
+<li><code>timestamp</code>: The timestamp when the entry is created, defaulting to the current time.</li>
1045
+</ul>
1046
+<h2 id="graylogmetricsallocationschema-class">GraylogMetricsAllocationSchema Class</h2>
1047
+<p>The <code>GraylogMetricsAllocationSchema</code> class is a Marshmallow schema that facilitates serialization and deserialization of <code>GraylogMetricsAllocation</code> instances. This can be helpful when converting instances to JSON format for API responses or when parsing incoming data.</p>
1048
+<p>At the end of the script, instances of <code>GraylogMetricsAllocationSchema</code> are created for single and multiple <code>GraylogMetricsAllocation</code> instances, respectively.</p>
1049
+<p>This file provides a way to store and work with Graylog metrics data in a structured manner, allowing for easy retrieval, manipulation, and serialization/deserialization of the data.</p>
1050
+
1051
+
1052
+<div class="doc doc-object doc-module">
1053
+
1054
+
1055
+<a id="app.models.graylog"></a>
1056
+ <div class="doc doc-contents first">
1057
+
1058
+
1059
+
1060
+ <div class="doc doc-children">
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+<div class="doc doc-object doc-class">
1070
+
1071
+
1072
+
1073
+<h2 id="app.models.graylog.GraylogMetricsAllocation" class="doc doc-heading">
1074
+ <code>GraylogMetricsAllocation</code>
1075
+
1076
+
1077
+</h2>
1078
+
1079
+
1080
+ <div class="doc doc-contents ">
1081
+ <p class="doc doc-class-bases">
1082
+ Bases: <code><span title="app.db">db</span>.<span title="app.db.Model">Model</span></code></p>
1083
+
1084
+
1085
+ <p>Class for Graylog metrics allocation which stores throughput metrics.
1086
+The timestamp is generated for each entry and it is invoked every 5 minutes.
1087
+This class inherits from SQLAlchemy's Model class.</p>
1088
+
1089
+
1090
+ <details class="quote">
1091
+ <summary>Source code in <code>app\models\graylog.py</code></summary>
1092
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-13">13</a></span>
1093
<span class="normal"><a href="#__codelineno-0-14">14</a></span>
1094
<span class="normal"><a href="#__codelineno-0-15">15</a></span>
1095
<span class="normal"><a href="#__codelineno-0-16">16</a></span>
@@ -676,12 +1141,7 @@
1141
<span class="normal"><a href="#__codelineno-0-62">62</a></span>
1142
<span class="normal"><a href="#__codelineno-0-63">63</a></span>
1143
<span class="normal"><a href="#__codelineno-0-64">64</a></span>
679
-<span class="normal"><a href="#__codelineno-0-65">65</a></span></pre>
680
- </div>
681
- </td>
682
- <td class="code">
683
- <div>
684
- <pre><span></span><code><a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">class</span> <span class="nc">GraylogMetricsAllocation</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
1144
+<span class="normal"><a href="#__codelineno-0-65">65</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">class</span> <span class="nc">GraylogMetricsAllocation</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
1145
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="sd">"""</span>
1146
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> Class for Graylog metrics allocation which stores throughput metrics.</span>
1147
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> The timestamp is generated for each entry and it is invoked every 5 minutes.</span>
@@ -734,64 +1194,45 @@
1194
<a id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="sd"> :return: A string representation of the instance's id.</span>
1195
<a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="sd"> """</span>
1196
<a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"<GraylogMetricsAllocation </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">>"</span>
737
-</code></pre>
738
- </div>
739
- </td>
740
- </tr>
741
- </table>
742
- </div>
743
- </details>
744
-
745
- <div class="doc doc-children">
746
- <div class="doc doc-object doc-function">
747
- <h3
748
- id="app.models.graylog.GraylogMetricsAllocation.__init__"
749
- class="doc doc-heading"
750
- >
751
- <code class="highlight language-python"
752
- ><span class="fm">__init__</span><span class="p">(</span
753
- ><span class="n">input_usage</span
754
- ><span class="p">,</span>
755
- <span class="n">output_usage</span
756
- ><span class="p">,</span>
757
- <span class="n">processor_usage</span
758
- ><span class="p">,</span>
759
- <span class="n">input_1_sec_rate</span
760
- ><span class="p">,</span>
761
- <span class="n">output_1_sec_rate</span
762
- ><span class="p">,</span>
763
- <span class="n">total_input</span
764
- ><span class="p">,</span>
765
- <span class="n">total_output</span
766
- ><span class="p">)</span></code
767
- >
768
- </h3>
769
-
770
- <div class="doc doc-contents">
771
- <p>
772
- Initialize a new instance of the
773
- GraylogMetricsAllocation class.
774
- </p>
775
- <p>
776
- :param input_usage: The input usage value. :param
777
- output_usage: The output usage value. :param
778
- processor_usage: The processor usage value. :param
779
- input_1_sec_rate: The input per second rate. :param
780
- output_1_sec_rate: The output per second rate. :param
781
- total_input: The total input value. :param total_output:
782
- The total output value.
783
- </p>
784
-
785
- <details class="quote">
786
- <summary>
787
- Source code in <code>app\models\graylog.py</code>
788
- </summary>
789
- <div class="highlight">
790
- <table class="highlighttable">
791
- <tr>
792
- <td class="linenos">
793
- <div class="linenodiv">
794
- <pre><span></span><span class="normal"><a href="#__codelineno-0-30">30</a></span>
1197
+</code></pre></div></td></tr></table></div>
1198
+ </details>
1199
+
1200
+
1201
+
1202
+ <div class="doc doc-children">
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+<div class="doc doc-object doc-function">
1213
+
1214
+
1215
+
1216
+<h3 id="app.models.graylog.GraylogMetricsAllocation.__init__" class="doc doc-heading">
1217
+<code class="highlight language-python"><span class="fm">__init__</span><span class="p">(</span><span class="n">input_usage</span><span class="p">,</span> <span class="n">output_usage</span><span class="p">,</span> <span class="n">processor_usage</span><span class="p">,</span> <span class="n">input_1_sec_rate</span><span class="p">,</span> <span class="n">output_1_sec_rate</span><span class="p">,</span> <span class="n">total_input</span><span class="p">,</span> <span class="n">total_output</span><span class="p">)</span></code>
1218
+
1219
+</h3>
1220
+
1221
+
1222
+ <div class="doc doc-contents ">
1223
+
1224
+ <p>Initialize a new instance of the GraylogMetricsAllocation class.</p>
1225
+<p>:param input_usage: The input usage value.
1226
+:param output_usage: The output usage value.
1227
+:param processor_usage: The processor usage value.
1228
+:param input_1_sec_rate: The input per second rate.
1229
+:param output_1_sec_rate: The output per second rate.
1230
+:param total_input: The total input value.
1231
+:param total_output: The total output value.</p>
1232
+
1233
+ <details class="quote">
1234
+ <summary>Source code in <code>app\models\graylog.py</code></summary>
1235
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-30">30</a></span>
1236
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
1237
<span class="normal"><a href="#__codelineno-0-32">32</a></span>
1238
<span class="normal"><a href="#__codelineno-0-33">33</a></span>
@@ -818,12 +1259,7 @@
1259
<span class="normal"><a href="#__codelineno-0-54">54</a></span>
1260
<span class="normal"><a href="#__codelineno-0-55">55</a></span>
1261
<span class="normal"><a href="#__codelineno-0-56">56</a></span>
821
-<span class="normal"><a href="#__codelineno-0-57">57</a></span></pre>
822
- </div>
823
- </td>
824
- <td class="code">
825
- <div>
826
- <pre><span></span><code><a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
1262
+<span class="normal"><a href="#__codelineno-0-57">57</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
1263
<a id="__codelineno-0-31" name="__codelineno-0-31"></a> <span class="bp">self</span><span class="p">,</span>
1264
<a id="__codelineno-0-32" name="__codelineno-0-32"></a> <span class="n">input_usage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
1265
<a id="__codelineno-0-33" name="__codelineno-0-33"></a> <span class="n">output_usage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
@@ -851,107 +1287,78 @@
1287
<a id="__codelineno-0-55" name="__codelineno-0-55"></a> <span class="bp">self</span><span class="o">.</span><span class="n">output_1_sec_rate</span> <span class="o">=</span> <span class="n">output_1_sec_rate</span>
1288
<a id="__codelineno-0-56" name="__codelineno-0-56"></a> <span class="bp">self</span><span class="o">.</span><span class="n">total_input</span> <span class="o">=</span> <span class="n">total_input</span>
1289
<a id="__codelineno-0-57" name="__codelineno-0-57"></a> <span class="bp">self</span><span class="o">.</span><span class="n">total_output</span> <span class="o">=</span> <span class="n">total_output</span>
854
-</code></pre>
855
- </div>
856
- </td>
857
- </tr>
858
- </table>
859
- </div>
860
- </details>
861
- </div>
862
- </div>
863
-
864
- <div class="doc doc-object doc-function">
865
- <h3
866
- id="app.models.graylog.GraylogMetricsAllocation.__repr__"
867
- class="doc doc-heading"
868
- >
869
- <code class="highlight language-python"
870
- ><span class="fm">__repr__</span
871
- ><span class="p">()</span></code
872
- >
873
- </h3>
874
-
875
- <div class="doc doc-contents">
876
- <p>
877
- Returns a string representation of the
878
- GraylogMetricsAllocation instance.
879
- </p>
880
- <p>
881
- :return: A string representation of the instance's id.
882
- </p>
883
-
884
- <details class="quote">
885
- <summary>
886
- Source code in <code>app\models\graylog.py</code>
887
- </summary>
888
- <div class="highlight">
889
- <table class="highlighttable">
890
- <tr>
891
- <td class="linenos">
892
- <div class="linenodiv">
893
- <pre><span></span><span class="normal"><a href="#__codelineno-0-59">59</a></span>
1290
+</code></pre></div></td></tr></table></div>
1291
+ </details>
1292
+ </div>
1293
+
1294
+</div>
1295
+
1296
+<div class="doc doc-object doc-function">
1297
+
1298
+
1299
+
1300
+<h3 id="app.models.graylog.GraylogMetricsAllocation.__repr__" class="doc doc-heading">
1301
+<code class="highlight language-python"><span class="fm">__repr__</span><span class="p">()</span></code>
1302
+
1303
+</h3>
1304
+
1305
+
1306
+ <div class="doc doc-contents ">
1307
+
1308
+ <p>Returns a string representation of the GraylogMetricsAllocation instance.</p>
1309
+<p>:return: A string representation of the instance's id.</p>
1310
+
1311
+ <details class="quote">
1312
+ <summary>Source code in <code>app\models\graylog.py</code></summary>
1313
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-59">59</a></span>
1314
<span class="normal"><a href="#__codelineno-0-60">60</a></span>
1315
<span class="normal"><a href="#__codelineno-0-61">61</a></span>
1316
<span class="normal"><a href="#__codelineno-0-62">62</a></span>
1317
<span class="normal"><a href="#__codelineno-0-63">63</a></span>
1318
<span class="normal"><a href="#__codelineno-0-64">64</a></span>
899
-<span class="normal"><a href="#__codelineno-0-65">65</a></span></pre>
900
- </div>
901
- </td>
902
- <td class="code">
903
- <div>
904
- <pre><span></span><code><a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
1319
+<span class="normal"><a href="#__codelineno-0-65">65</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
1320
<a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="sd">"""</span>
1321
<a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd"> Returns a string representation of the GraylogMetricsAllocation instance.</span>
1322
<a id="__codelineno-0-62" name="__codelineno-0-62"></a>
1323
<a id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="sd"> :return: A string representation of the instance's id.</span>
1324
<a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="sd"> """</span>
1325
<a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"<GraylogMetricsAllocation </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">>"</span>
911
-</code></pre>
912
- </div>
913
- </td>
914
- </tr>
915
- </table>
916
- </div>
917
- </details>
918
- </div>
919
- </div>
920
- </div>
921
- </div>
922
- </div>
923
-
924
- <div class="doc doc-object doc-class">
925
- <h2
926
- id="app.models.graylog.GraylogMetricsAllocationSchema"
927
- class="doc doc-heading"
928
- >
929
- <code>GraylogMetricsAllocationSchema</code>
930
- </h2>
931
-
932
- <div class="doc doc-contents">
933
- <p class="doc doc-class-bases">
934
- Bases:
935
- <code
936
- ><span title="app.ma">ma</span>.<span title="app.ma.Schema"
937
- >Schema</span
938
- ></code
939
- >
940
- </p>
941
-
942
- <p>
943
- Schema for serializing and deserializing instances of the
944
- GraylogMetricsAllocation class.
945
- </p>
946
-
947
- <details class="quote">
948
- <summary>Source code in <code>app\models\graylog.py</code></summary>
949
- <div class="highlight">
950
- <table class="highlighttable">
951
- <tr>
952
- <td class="linenos">
953
- <div class="linenodiv">
954
- <pre><span></span><span class="normal"><a href="#__codelineno-0-68">68</a></span>
1326
+</code></pre></div></td></tr></table></div>
1327
+ </details>
1328
+ </div>
1329
+
1330
+</div>
1331
+
1332
+
1333
+
1334
+ </div>
1335
+
1336
+ </div>
1337
+
1338
+</div>
1339
+
1340
+<div class="doc doc-object doc-class">
1341
+
1342
+
1343
+
1344
+<h2 id="app.models.graylog.GraylogMetricsAllocationSchema" class="doc doc-heading">
1345
+ <code>GraylogMetricsAllocationSchema</code>
1346
+
1347
+
1348
+</h2>
1349
+
1350
+
1351
+ <div class="doc doc-contents ">
1352
+ <p class="doc doc-class-bases">
1353
+ Bases: <code><span title="app.ma">ma</span>.<span title="app.ma.Schema">Schema</span></code></p>
1354
+
1355
+
1356
+ <p>Schema for serializing and deserializing instances of the GraylogMetricsAllocation class.</p>
1357
+
1358
+
1359
+ <details class="quote">
1360
+ <summary>Source code in <code>app\models\graylog.py</code></summary>
1361
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-68">68</a></span>
1362
<span class="normal"><a href="#__codelineno-0-69">69</a></span>
1363
<span class="normal"><a href="#__codelineno-0-70">70</a></span>
1364
<span class="normal"><a href="#__codelineno-0-71">71</a></span>
@@ -971,12 +1378,7 @@
1378
<span class="normal"><a href="#__codelineno-0-85">85</a></span>
1379
<span class="normal"><a href="#__codelineno-0-86">86</a></span>
1380
<span class="normal"><a href="#__codelineno-0-87">87</a></span>
974
-<span class="normal"><a href="#__codelineno-0-88">88</a></span></pre>
975
- </div>
976
- </td>
977
- <td class="code">
978
- <div>
979
- <pre><span></span><code><a id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="k">class</span> <span class="nc">GraylogMetricsAllocationSchema</span><span class="p">(</span><span class="n">ma</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span>
1381
+<span class="normal"><a href="#__codelineno-0-88">88</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="k">class</span> <span class="nc">GraylogMetricsAllocationSchema</span><span class="p">(</span><span class="n">ma</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span>
1382
<a id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="w"> </span><span class="sd">"""</span>
1383
<a id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="sd"> Schema for serializing and deserializing instances of the GraylogMetricsAllocation class.</span>
1384
<a id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="sd"> """</span>
@@ -997,39 +1399,40 @@
1399
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="s2">"total_output"</span><span class="p">,</span>
1400
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="s2">"timestamp"</span><span class="p">,</span>
1401
<a id="__codelineno-0-88" name="__codelineno-0-88"></a> <span class="p">)</span>
1000
-</code></pre>
1001
- </div>
1002
- </td>
1003
- </tr>
1004
- </table>
1005
- </div>
1006
- </details>
1007
-
1008
- <div class="doc doc-children">
1009
- <div class="doc doc-object doc-class">
1010
- <h3
1011
- id="app.models.graylog.GraylogMetricsAllocationSchema.Meta"
1012
- class="doc doc-heading"
1013
- >
1014
- <code>Meta</code>
1015
- </h3>
1016
-
1017
- <div class="doc doc-contents">
1018
- <p>
1019
- Meta class defines the fields to be
1020
- serialized/deserialized.
1021
- </p>
1022
-
1023
- <details class="quote">
1024
- <summary>
1025
- Source code in <code>app\models\graylog.py</code>
1026
- </summary>
1027
- <div class="highlight">
1028
- <table class="highlighttable">
1029
- <tr>
1030
- <td class="linenos">
1031
- <div class="linenodiv">
1032
- <pre><span></span><span class="normal"><a href="#__codelineno-0-73">73</a></span>
1402
+</code></pre></div></td></tr></table></div>
1403
+ </details>
1404
+
1405
+
1406
+
1407
+ <div class="doc doc-children">
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+<div class="doc doc-object doc-class">
1417
+
1418
+
1419
+
1420
+<h3 id="app.models.graylog.GraylogMetricsAllocationSchema.Meta" class="doc doc-heading">
1421
+ <code>Meta</code>
1422
+
1423
+
1424
+</h3>
1425
+
1426
+
1427
+ <div class="doc doc-contents ">
1428
+
1429
+
1430
+ <p>Meta class defines the fields to be serialized/deserialized.</p>
1431
+
1432
+
1433
+ <details class="quote">
1434
+ <summary>Source code in <code>app\models\graylog.py</code></summary>
1435
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-73">73</a></span>
1436
<span class="normal"><a href="#__codelineno-0-74">74</a></span>
1437
<span class="normal"><a href="#__codelineno-0-75">75</a></span>
1438
<span class="normal"><a href="#__codelineno-0-76">76</a></span>
@@ -1044,12 +1447,7 @@
1447
<span class="normal"><a href="#__codelineno-0-85">85</a></span>
1448
<span class="normal"><a href="#__codelineno-0-86">86</a></span>
1449
<span class="normal"><a href="#__codelineno-0-87">87</a></span>
1047
-<span class="normal"><a href="#__codelineno-0-88">88</a></span></pre>
1048
- </div>
1049
- </td>
1050
- <td class="code">
1051
- <div>
1052
- <pre><span></span><code><a id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="k">class</span> <span class="nc">Meta</span><span class="p">:</span>
1450
+<span class="normal"><a href="#__codelineno-0-88">88</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="k">class</span> <span class="nc">Meta</span><span class="p">:</span>
1451
<a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="w"> </span><span class="sd">"""</span>
1452
<a id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="sd"> Meta class defines the fields to be serialized/deserialized.</span>
1453
<a id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="sd"> """</span>
@@ -1065,104 +1463,176 @@
1463
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="s2">"total_output"</span><span class="p">,</span>
1464
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="s2">"timestamp"</span><span class="p">,</span>
1465
<a id="__codelineno-0-88" name="__codelineno-0-88"></a> <span class="p">)</span>
1068
-</code></pre>
1069
- </div>
1070
- </td>
1071
- </tr>
1072
- </table>
1073
- </div>
1074
- </details>
1075
-
1076
- <div class="doc doc-children"></div>
1077
- </div>
1078
- </div>
1079
- </div>
1080
- </div>
1081
- </div>
1082
- </div>
1083
- </div>
1084
- </div>
1085
- <p><br /></p>
1086
- <h3 id="graylog-routes"><span style="color: green">Graylog Routes</span></h3>
1087
-
1088
- <div class="doc doc-object doc-module">
1089
- <a id="app.routes.graylog"></a>
1090
- <div class="doc doc-contents first">
1091
- <div class="doc doc-children">
1092
- <div class="doc doc-object doc-function">
1093
- <h2 id="app.routes.graylog.delete_index" class="doc doc-heading">
1094
- <code class="highlight language-python"
1095
- ><span class="n">delete_index</span><span class="p">(</span
1096
- ><span class="n">index_name</span><span class="p">)</span></code
1097
- >
1098
- </h2>
1099
-
1100
- <div class="doc doc-contents">
1101
- <p>Endpoint to delete a Graylog index.</p>
1102
-
1103
- <p><strong>Parameters:</strong></p>
1104
- <table>
1105
- <thead>
1106
- <tr>
1107
- <th>Name</th>
1108
- <th>Type</th>
1109
- <th>Description</th>
1110
- <th>Default</th>
1111
- </tr>
1112
- </thead>
1113
- <tbody>
1114
- <tr>
1115
- <td><code>index_name</code></td>
1116
- <td>
1117
- <code>str</code>
1118
- </td>
1119
- <td>
1120
- <div class="doc-md-description">
1121
- <p>The name of the index to be deleted.</p>
1122
- </div>
1123
- </td>
1124
- <td>
1125
- <em>required</em>
1126
- </td>
1127
- </tr>
1128
- </tbody>
1129
- </table>
1130
-
1131
- <p><strong>Returns:</strong></p>
1132
- <table>
1133
- <thead>
1134
- <tr>
1135
- <th>Name</th>
1136
- <th>Type</th>
1137
- <th>Description</th>
1138
- </tr>
1139
- </thead>
1140
- <tbody>
1141
- <tr>
1142
- <td><code>dict</code></td>
1143
- <td>
1144
- <code>dict</code>
1145
- </td>
1146
- <td>
1147
- <div class="doc-md-description">
1148
- <p>
1149
- A JSON object containing the result of the
1150
- deletion operation.
1151
- </p>
1152
- </div>
1153
- </td>
1154
- </tr>
1155
- </tbody>
1156
- </table>
1157
-
1158
- <details class="quote">
1159
- <summary>Source code in <code>app\routes\graylog.py</code></summary>
1160
- <div class="highlight">
1161
- <table class="highlighttable">
1162
- <tr>
1163
- <td class="linenos">
1164
- <div class="linenodiv">
1165
- <pre><span></span><span class="normal"><a href="#__codelineno-0-58">58</a></span>
1466
+</code></pre></div></td></tr></table></div>
1467
+ </details>
1468
+
1469
+
1470
+
1471
+ <div class="doc doc-children">
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+ </div>
1484
+
1485
+ </div>
1486
+
1487
+</div>
1488
+
1489
+
1490
+
1491
+
1492
+ </div>
1493
+
1494
+ </div>
1495
+
1496
+</div>
1497
+
1498
+
1499
+
1500
+
1501
+ </div>
1502
+
1503
+ </div>
1504
+
1505
+</div><p><br></p>
1506
+<h3 id="graylog-routes"><span style="color:green">Graylog Routes</span></h3>
1507
+<h2 id="graylogpy_1">graylog.py</h2>
1508
+<p>The <code>graylog.py</code> file appears to be a Flask application module that defines several HTTP endpoints related to interacting with the Graylog service. It uses Flask's Blueprint functionality to create endpoints under the "/graylog" path. Here are the details:</p>
1509
+<h3 id="imports">Imports</h3>
1510
+<p>The script imports necessary modules and services at the beginning:</p>
1511
+<ul>
1512
+<li><code>flask</code>: A micro web framework written in Python.</li>
1513
+<li><code>jsonify</code>: A Flask function that converts Python data structures to JSON format.</li>
1514
+<li><code>app.services.Graylog.*</code>: Various services related to Graylog, such as <code>IndexService</code>, <code>InputsService</code>, <code>MessagesService</code>, and <code>MetricsService</code>.</li>
1515
+</ul>
1516
+<h3 id="blueprint">Blueprint</h3>
1517
+<p>The script defines a <code>Blueprint</code> named <code>bp</code>, which is a way to organize a group of related views and other code in Flask. The <code>bp</code> is registered with the Flask application and all the defined routes under the "/graylog" path will be associated with this blueprint.</p>
1518
+<p>The endpoints defined in this script are not provided in the given information, so a detailed breakdown of the routes and their associated functions cannot be provided without reviewing the code further.</p>
1519
+<p>This file is likely part of a larger Flask application that provides an API interface for interacting with the Graylog service. It follows a modular approach by organizing related endpoints and functionality into a blueprint, promoting code organization and maintainability.</p>
1520
+<h2 id="endpoints">Endpoints</h2>
1521
+<p>The <code>graylog.py</code> script defines the following endpoints under the <code>/graylog</code> path:</p>
1522
+<ul>
1523
+<li>
1524
+<p><strong>GET /graylog/messages</strong>: This endpoint returns the latest 10 messages from Graylog. It utilizes the <code>MessagesService</code> to collect these messages.</p>
1525
+</li>
1526
+<li>
1527
+<p><strong>GET /graylog/metrics</strong>: This endpoint returns Graylog metrics, including the uncommitted journal size. It utilizes the <code>MetricsService</code> to collect these metrics.</p>
1528
+</li>
1529
+<li>
1530
+<p><strong>GET /graylog/indices</strong>: This endpoint returns a list of all Graylog indices. It utilizes the <code>IndexService</code> to collect these indices.</p>
1531
+</li>
1532
+<li>
1533
+<p><strong>DELETE /graylog/indices/<index_name>/delete</strong>: This endpoint deletes a specified Graylog index. It utilizes the <code>IndexService</code> to delete the specified index.</p>
1534
+</li>
1535
+<li>
1536
+<p><strong>GET /graylog/inputs</strong>: This endpoint returns a list of all running and configured inputs in Graylog. It utilizes the <code>InputsService</code> to collect these inputs.</p>
1537
+</li>
1538
+</ul>
1539
+<h2 id="services">Services</h2>
1540
+<p>The <code>graylog.py</code> script uses several services to interact with Graylog:</p>
1541
+<ul>
1542
+<li><code>MessagesService</code>: Used to collect messages from Graylog.</li>
1543
+<li><code>MetricsService</code>: Used to collect Graylog metrics.</li>
1544
+<li><code>IndexService</code>: Used to collect and delete Graylog indices.</li>
1545
+<li><code>InputsService</code>: Used to collect running and configured inputs in Graylog.</li>
1546
+</ul>
1547
+<p>These services handle the implementation details of interacting with the Graylog API to perform the respective operations.</p>
1548
+<p>Each endpoint is well-documented with a docstring, providing clear descriptions of its purpose, accepted arguments (if any), and the returned data. The script demonstrates good organization and adheres to common practices for structuring Flask applications.</p>
1549
+
1550
+
1551
+<div class="doc doc-object doc-module">
1552
+
1553
+
1554
+<a id="app.routes.graylog"></a>
1555
+ <div class="doc doc-contents first">
1556
+
1557
+
1558
+
1559
+ <div class="doc doc-children">
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+<div class="doc doc-object doc-function">
1570
+
1571
+
1572
+
1573
+<h2 id="app.routes.graylog.delete_index" class="doc doc-heading">
1574
+<code class="highlight language-python"><span class="n">delete_index</span><span class="p">(</span><span class="n">index_name</span><span class="p">)</span></code>
1575
+
1576
+</h2>
1577
+
1578
+
1579
+ <div class="doc doc-contents ">
1580
+
1581
+ <p>Endpoint to delete a Graylog index.</p>
1582
+
1583
+ <p><strong>Parameters:</strong></p>
1584
+ <table>
1585
+ <thead>
1586
+ <tr>
1587
+ <th>Name</th>
1588
+ <th>Type</th>
1589
+ <th>Description</th>
1590
+ <th>Default</th>
1591
+ </tr>
1592
+ </thead>
1593
+ <tbody>
1594
+ <tr>
1595
+ <td><code>index_name</code></td>
1596
+ <td>
1597
+ <code>str</code>
1598
+ </td>
1599
+ <td>
1600
+ <div class="doc-md-description">
1601
+ <p>The name of the index to be deleted.</p>
1602
+ </div>
1603
+ </td>
1604
+ <td>
1605
+ <em>required</em>
1606
+ </td>
1607
+ </tr>
1608
+ </tbody>
1609
+ </table>
1610
+
1611
+ <p><strong>Returns:</strong></p>
1612
+ <table>
1613
+ <thead>
1614
+ <tr>
1615
+<th>Name</th> <th>Type</th>
1616
+ <th>Description</th>
1617
+ </tr>
1618
+ </thead>
1619
+ <tbody>
1620
+ <tr>
1621
+<td><code>dict</code></td> <td>
1622
+ <code>dict</code>
1623
+ </td>
1624
+ <td>
1625
+ <div class="doc-md-description">
1626
+ <p>A JSON object containing the result of the deletion operation.</p>
1627
+ </div>
1628
+ </td>
1629
+ </tr>
1630
+ </tbody>
1631
+ </table>
1632
+
1633
+ <details class="quote">
1634
+ <summary>Source code in <code>app\routes\graylog.py</code></summary>
1635
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-58">58</a></span>
1636
<span class="normal"><a href="#__codelineno-0-59">59</a></span>
1637
<span class="normal"><a href="#__codelineno-0-60">60</a></span>
1638
<span class="normal"><a href="#__codelineno-0-61">61</a></span>
@@ -1175,12 +1645,7 @@
1645
<span class="normal"><a href="#__codelineno-0-68">68</a></span>
1646
<span class="normal"><a href="#__codelineno-0-69">69</a></span>
1647
<span class="normal"><a href="#__codelineno-0-70">70</a></span>
1178
-<span class="normal"><a href="#__codelineno-0-71">71</a></span></pre>
1179
- </div>
1180
- </td>
1181
- <td class="code">
1182
- <div>
1183
- <pre><span></span><code><a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/indices/<index_name>/delete"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"DELETE"</span><span class="p">])</span>
1648
+<span class="normal"><a href="#__codelineno-0-71">71</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/indices/<index_name>/delete"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"DELETE"</span><span class="p">])</span>
1649
<a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="n">index_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
1650
<a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="sd">"""</span>
1651
<a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd"> Endpoint to delete a Graylog index.</span>
@@ -1194,61 +1659,51 @@
1659
<a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="n">service</span> <span class="o">=</span> <span class="n">IndexService</span><span class="p">()</span>
1660
<a id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="n">result</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">delete_index</span><span class="p">(</span><span class="n">index_name</span><span class="p">)</span>
1661
<a id="__codelineno-0-71" name="__codelineno-0-71"></a> <span class="k">return</span> <span class="n">result</span>
1197
-</code></pre>
1198
- </div>
1199
- </td>
1200
- </tr>
1201
- </table>
1202
- </div>
1203
- </details>
1204
- </div>
1205
- </div>
1206
-
1207
- <div class="doc doc-object doc-function">
1208
- <h2 id="app.routes.graylog.get_indices" class="doc doc-heading">
1209
- <code class="highlight language-python"
1210
- ><span class="n">get_indices</span><span class="p">()</span></code
1211
- >
1212
- </h2>
1213
-
1214
- <div class="doc doc-contents">
1215
- <p>Endpoint to collect Graylog indices.</p>
1216
-
1217
- <p><strong>Returns:</strong></p>
1218
- <table>
1219
- <thead>
1220
- <tr>
1221
- <th>Name</th>
1222
- <th>Type</th>
1223
- <th>Description</th>
1224
- </tr>
1225
- </thead>
1226
- <tbody>
1227
- <tr>
1228
- <td><code>dict</code></td>
1229
- <td>
1230
- <code>dict</code>
1231
- </td>
1232
- <td>
1233
- <div class="doc-md-description">
1234
- <p>
1235
- A JSON object containing the list of all
1236
- indices.
1237
- </p>
1238
- </div>
1239
- </td>
1240
- </tr>
1241
- </tbody>
1242
- </table>
1243
-
1244
- <details class="quote">
1245
- <summary>Source code in <code>app\routes\graylog.py</code></summary>
1246
- <div class="highlight">
1247
- <table class="highlighttable">
1248
- <tr>
1249
- <td class="linenos">
1250
- <div class="linenodiv">
1251
- <pre><span></span><span class="normal"><a href="#__codelineno-0-45">45</a></span>
1662
+</code></pre></div></td></tr></table></div>
1663
+ </details>
1664
+ </div>
1665
+
1666
+</div>
1667
+
1668
+<div class="doc doc-object doc-function">
1669
+
1670
+
1671
+
1672
+<h2 id="app.routes.graylog.get_indices" class="doc doc-heading">
1673
+<code class="highlight language-python"><span class="n">get_indices</span><span class="p">()</span></code>
1674
+
1675
+</h2>
1676
+
1677
+
1678
+ <div class="doc doc-contents ">
1679
+
1680
+ <p>Endpoint to collect Graylog indices.</p>
1681
+
1682
+ <p><strong>Returns:</strong></p>
1683
+ <table>
1684
+ <thead>
1685
+ <tr>
1686
+<th>Name</th> <th>Type</th>
1687
+ <th>Description</th>
1688
+ </tr>
1689
+ </thead>
1690
+ <tbody>
1691
+ <tr>
1692
+<td><code>dict</code></td> <td>
1693
+ <code>dict</code>
1694
+ </td>
1695
+ <td>
1696
+ <div class="doc-md-description">
1697
+ <p>A JSON object containing the list of all indices.</p>
1698
+ </div>
1699
+ </td>
1700
+ </tr>
1701
+ </tbody>
1702
+ </table>
1703
+
1704
+ <details class="quote">
1705
+ <summary>Source code in <code>app\routes\graylog.py</code></summary>
1706
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-45">45</a></span>
1707
<span class="normal"><a href="#__codelineno-0-46">46</a></span>
1708
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
1709
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
@@ -1258,12 +1713,7 @@
1713
<span class="normal"><a href="#__codelineno-0-52">52</a></span>
1714
<span class="normal"><a href="#__codelineno-0-53">53</a></span>
1715
<span class="normal"><a href="#__codelineno-0-54">54</a></span>
1261
-<span class="normal"><a href="#__codelineno-0-55">55</a></span></pre>
1262
- </div>
1263
- </td>
1264
- <td class="code">
1265
- <div>
1266
- <pre><span></span><code><a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/indices"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1716
+<span class="normal"><a href="#__codelineno-0-55">55</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/indices"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1717
<a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="k">def</span> <span class="nf">get_indices</span><span class="p">()</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
1718
<a id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="sd">"""</span>
1719
<a id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="sd"> Endpoint to collect Graylog indices.</span>
@@ -1274,61 +1724,51 @@
1724
<a id="__codelineno-0-53" name="__codelineno-0-53"></a> <span class="n">service</span> <span class="o">=</span> <span class="n">IndexService</span><span class="p">()</span>
1725
<a id="__codelineno-0-54" name="__codelineno-0-54"></a> <span class="n">indices</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">collect_indices</span><span class="p">()</span>
1726
<a id="__codelineno-0-55" name="__codelineno-0-55"></a> <span class="k">return</span> <span class="n">indices</span>
1277
-</code></pre>
1278
- </div>
1279
- </td>
1280
- </tr>
1281
- </table>
1282
- </div>
1283
- </details>
1284
- </div>
1285
- </div>
1286
-
1287
- <div class="doc doc-object doc-function">
1288
- <h2 id="app.routes.graylog.get_inputs" class="doc doc-heading">
1289
- <code class="highlight language-python"
1290
- ><span class="n">get_inputs</span><span class="p">()</span></code
1291
- >
1292
- </h2>
1293
-
1294
- <div class="doc doc-contents">
1295
- <p>Endpoint to collect Graylog inputs.</p>
1296
-
1297
- <p><strong>Returns:</strong></p>
1298
- <table>
1299
- <thead>
1300
- <tr>
1301
- <th>Name</th>
1302
- <th>Type</th>
1303
- <th>Description</th>
1304
- </tr>
1305
- </thead>
1306
- <tbody>
1307
- <tr>
1308
- <td><code>dict</code></td>
1309
- <td>
1310
- <code>dict</code>
1311
- </td>
1312
- <td>
1313
- <div class="doc-md-description">
1314
- <p>
1315
- A JSON object containing the list of all running
1316
- and configured inputs.
1317
- </p>
1318
- </div>
1319
- </td>
1320
- </tr>
1321
- </tbody>
1322
- </table>
1323
-
1324
- <details class="quote">
1325
- <summary>Source code in <code>app\routes\graylog.py</code></summary>
1326
- <div class="highlight">
1327
- <table class="highlighttable">
1328
- <tr>
1329
- <td class="linenos">
1330
- <div class="linenodiv">
1331
- <pre><span></span><span class="normal"><a href="#__codelineno-0-74">74</a></span>
1727
+</code></pre></div></td></tr></table></div>
1728
+ </details>
1729
+ </div>
1730
+
1731
+</div>
1732
+
1733
+<div class="doc doc-object doc-function">
1734
+
1735
+
1736
+
1737
+<h2 id="app.routes.graylog.get_inputs" class="doc doc-heading">
1738
+<code class="highlight language-python"><span class="n">get_inputs</span><span class="p">()</span></code>
1739
+
1740
+</h2>
1741
+
1742
+
1743
+ <div class="doc doc-contents ">
1744
+
1745
+ <p>Endpoint to collect Graylog inputs.</p>
1746
+
1747
+ <p><strong>Returns:</strong></p>
1748
+ <table>
1749
+ <thead>
1750
+ <tr>
1751
+<th>Name</th> <th>Type</th>
1752
+ <th>Description</th>
1753
+ </tr>
1754
+ </thead>
1755
+ <tbody>
1756
+ <tr>
1757
+<td><code>dict</code></td> <td>
1758
+ <code>dict</code>
1759
+ </td>
1760
+ <td>
1761
+ <div class="doc-md-description">
1762
+ <p>A JSON object containing the list of all running and configured inputs.</p>
1763
+ </div>
1764
+ </td>
1765
+ </tr>
1766
+ </tbody>
1767
+ </table>
1768
+
1769
+ <details class="quote">
1770
+ <summary>Source code in <code>app\routes\graylog.py</code></summary>
1771
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-74">74</a></span>
1772
<span class="normal"><a href="#__codelineno-0-75">75</a></span>
1773
<span class="normal"><a href="#__codelineno-0-76">76</a></span>
1774
<span class="normal"><a href="#__codelineno-0-77">77</a></span>
@@ -1341,12 +1781,7 @@
1781
<span class="normal"><a href="#__codelineno-0-84">84</a></span>
1782
<span class="normal"><a href="#__codelineno-0-85">85</a></span>
1783
<span class="normal"><a href="#__codelineno-0-86">86</a></span>
1344
-<span class="normal"><a href="#__codelineno-0-87">87</a></span></pre>
1345
- </div>
1346
- </td>
1347
- <td class="code">
1348
- <div>
1349
- <pre><span></span><code><a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/inputs"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1784
+<span class="normal"><a href="#__codelineno-0-87">87</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/inputs"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1785
<a id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="k">def</span> <span class="nf">get_inputs</span><span class="p">()</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
1786
<a id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="w"> </span><span class="sd">"""</span>
1787
<a id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="sd"> Endpoint to collect Graylog inputs.</span>
@@ -1360,61 +1795,51 @@
1795
<a id="__codelineno-0-85" name="__codelineno-0-85"></a> <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span>
1796
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="p">{</span><span class="s2">"running_inputs"</span><span class="p">:</span> <span class="n">running_inputs</span><span class="p">,</span> <span class="s2">"configured_inputs"</span><span class="p">:</span> <span class="n">configured_inputs</span><span class="p">},</span>
1797
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="p">)</span>
1363
-</code></pre>
1364
- </div>
1365
- </td>
1366
- </tr>
1367
- </table>
1368
- </div>
1369
- </details>
1370
- </div>
1371
- </div>
1372
-
1373
- <div class="doc doc-object doc-function">
1374
- <h2 id="app.routes.graylog.get_messages" class="doc doc-heading">
1375
- <code class="highlight language-python"
1376
- ><span class="n">get_messages</span><span class="p">()</span></code
1377
- >
1378
- </h2>
1379
-
1380
- <div class="doc doc-contents">
1381
- <p>Endpoint to collect the latest 10 messages from Graylog.</p>
1382
-
1383
- <p><strong>Returns:</strong></p>
1384
- <table>
1385
- <thead>
1386
- <tr>
1387
- <th>Name</th>
1388
- <th>Type</th>
1389
- <th>Description</th>
1390
- </tr>
1391
- </thead>
1392
- <tbody>
1393
- <tr>
1394
- <td><code>dict</code></td>
1395
- <td>
1396
- <code>dict</code>
1397
- </td>
1398
- <td>
1399
- <div class="doc-md-description">
1400
- <p>
1401
- A JSON object containing the list of all the
1402
- messages.
1403
- </p>
1404
- </div>
1405
- </td>
1406
- </tr>
1407
- </tbody>
1408
- </table>
1409
-
1410
- <details class="quote">
1411
- <summary>Source code in <code>app\routes\graylog.py</code></summary>
1412
- <div class="highlight">
1413
- <table class="highlighttable">
1414
- <tr>
1415
- <td class="linenos">
1416
- <div class="linenodiv">
1417
- <pre><span></span><span class="normal"><a href="#__codelineno-0-15">15</a></span>
1798
+</code></pre></div></td></tr></table></div>
1799
+ </details>
1800
+ </div>
1801
+
1802
+</div>
1803
+
1804
+<div class="doc doc-object doc-function">
1805
+
1806
+
1807
+
1808
+<h2 id="app.routes.graylog.get_messages" class="doc doc-heading">
1809
+<code class="highlight language-python"><span class="n">get_messages</span><span class="p">()</span></code>
1810
+
1811
+</h2>
1812
+
1813
+
1814
+ <div class="doc doc-contents ">
1815
+
1816
+ <p>Endpoint to collect the latest 10 messages from Graylog.</p>
1817
+
1818
+ <p><strong>Returns:</strong></p>
1819
+ <table>
1820
+ <thead>
1821
+ <tr>
1822
+<th>Name</th> <th>Type</th>
1823
+ <th>Description</th>
1824
+ </tr>
1825
+ </thead>
1826
+ <tbody>
1827
+ <tr>
1828
+<td><code>dict</code></td> <td>
1829
+ <code>dict</code>
1830
+ </td>
1831
+ <td>
1832
+ <div class="doc-md-description">
1833
+ <p>A JSON object containing the list of all the messages.</p>
1834
+ </div>
1835
+ </td>
1836
+ </tr>
1837
+ </tbody>
1838
+ </table>
1839
+
1840
+ <details class="quote">
1841
+ <summary>Source code in <code>app\routes\graylog.py</code></summary>
1842
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-15">15</a></span>
1843
<span class="normal"><a href="#__codelineno-0-16">16</a></span>
1844
<span class="normal"><a href="#__codelineno-0-17">17</a></span>
1845
<span class="normal"><a href="#__codelineno-0-18">18</a></span>
@@ -1424,12 +1849,7 @@
1849
<span class="normal"><a href="#__codelineno-0-22">22</a></span>
1850
<span class="normal"><a href="#__codelineno-0-23">23</a></span>
1851
<span class="normal"><a href="#__codelineno-0-24">24</a></span>
1427
-<span class="normal"><a href="#__codelineno-0-25">25</a></span></pre>
1428
- </div>
1429
- </td>
1430
- <td class="code">
1431
- <div>
1432
- <pre><span></span><code><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/messages"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1852
+<span class="normal"><a href="#__codelineno-0-25">25</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/messages"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1853
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="k">def</span> <span class="nf">get_messages</span><span class="p">()</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
1854
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="sd">"""</span>
1855
<a id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="sd"> Endpoint to collect the latest 10 messages from Graylog.</span>
@@ -1440,61 +1860,52 @@
1860
<a id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="n">service</span> <span class="o">=</span> <span class="n">MessagesService</span><span class="p">()</span>
1861
<a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="n">messages</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">collect_messages</span><span class="p">()</span>
1862
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="k">return</span> <span class="n">messages</span>
1443
-</code></pre>
1444
- </div>
1445
- </td>
1446
- </tr>
1447
- </table>
1448
- </div>
1449
- </details>
1450
- </div>
1451
- </div>
1452
-
1453
- <div class="doc doc-object doc-function">
1454
- <h2 id="app.routes.graylog.get_metrics" class="doc doc-heading">
1455
- <code class="highlight language-python"
1456
- ><span class="n">get_metrics</span><span class="p">()</span></code
1457
- >
1458
- </h2>
1459
-
1460
- <div class="doc doc-contents">
1461
- <p>Endpoint to collect Graylog metrics.</p>
1462
-
1463
- <p><strong>Returns:</strong></p>
1464
- <table>
1465
- <thead>
1466
- <tr>
1467
- <th>Name</th>
1468
- <th>Type</th>
1469
- <th>Description</th>
1470
- </tr>
1471
- </thead>
1472
- <tbody>
1473
- <tr>
1474
- <td><code>dict</code></td>
1475
- <td>
1476
- <code>dict</code>
1477
- </td>
1478
- <td>
1479
- <div class="doc-md-description">
1480
- <p>
1481
- A JSON object containing the list of all
1482
- metrics, including the uncommitted journal size.
1483
- </p>
1484
- </div>
1485
- </td>
1486
- </tr>
1487
- </tbody>
1488
- </table>
1489
-
1490
- <details class="quote">
1491
- <summary>Source code in <code>app\routes\graylog.py</code></summary>
1492
- <div class="highlight">
1493
- <table class="highlighttable">
1494
- <tr>
1495
- <td class="linenos">
1496
- <div class="linenodiv">
1497
- <pre><span></span><span class="normal"><a href="#__codelineno-0-28">28</a></span>
1863
+</code></pre></div></td></tr></table></div>
1864
+ </details>
1865
+ </div>
1866
+
1867
+</div>
1868
+
1869
+<div class="doc doc-object doc-function">
1870
+
1871
+
1872
+
1873
+<h2 id="app.routes.graylog.get_metrics" class="doc doc-heading">
1874
+<code class="highlight language-python"><span class="n">get_metrics</span><span class="p">()</span></code>
1875
+
1876
+</h2>
1877
+
1878
+
1879
+ <div class="doc doc-contents ">
1880
+
1881
+ <p>Endpoint to collect Graylog metrics.</p>
1882
+
1883
+ <p><strong>Returns:</strong></p>
1884
+ <table>
1885
+ <thead>
1886
+ <tr>
1887
+<th>Name</th> <th>Type</th>
1888
+ <th>Description</th>
1889
+ </tr>
1890
+ </thead>
1891
+ <tbody>
1892
+ <tr>
1893
+<td><code>dict</code></td> <td>
1894
+ <code>dict</code>
1895
+ </td>
1896
+ <td>
1897
+ <div class="doc-md-description">
1898
+ <p>A JSON object containing the list of all metrics,
1899
+ including the uncommitted journal size.</p>
1900
+ </div>
1901
+ </td>
1902
+ </tr>
1903
+ </tbody>
1904
+ </table>
1905
+
1906
+ <details class="quote">
1907
+ <summary>Source code in <code>app\routes\graylog.py</code></summary>
1908
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-28">28</a></span>
1909
<span class="normal"><a href="#__codelineno-0-29">29</a></span>
1910
<span class="normal"><a href="#__codelineno-0-30">30</a></span>
1911
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
@@ -1508,12 +1919,7 @@
1919
<span class="normal"><a href="#__codelineno-0-39">39</a></span>
1920
<span class="normal"><a href="#__codelineno-0-40">40</a></span>
1921
<span class="normal"><a href="#__codelineno-0-41">41</a></span>
1511
-<span class="normal"><a href="#__codelineno-0-42">42</a></span></pre>
1512
- </div>
1513
- </td>
1514
- <td class="code">
1515
- <div>
1516
- <pre><span></span><code><a id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/metrics"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1922
+<span class="normal"><a href="#__codelineno-0-42">42</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="nd">@bp</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/graylog/metrics"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s2">"GET"</span><span class="p">])</span>
1923
<a id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="k">def</span> <span class="nf">get_metrics</span><span class="p">()</span> <span class="o">-></span> <span class="nb">dict</span><span class="p">:</span>
1924
<a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="sd">"""</span>
1925
<a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="sd"> Endpoint to collect Graylog metrics.</span>
@@ -1528,46 +1934,82 @@
1934
<a id="__codelineno-0-40" name="__codelineno-0-40"></a> <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span>
1935
<a id="__codelineno-0-41" name="__codelineno-0-41"></a> <span class="p">{</span><span class="s2">"uncommitted_journal_size"</span><span class="p">:</span> <span class="n">uncommitted_journal_size</span><span class="p">,</span> <span class="s2">"metrics"</span><span class="p">:</span> <span class="n">metrics</span><span class="p">},</span>
1936
<a id="__codelineno-0-42" name="__codelineno-0-42"></a> <span class="p">)</span>
1531
-</code></pre>
1532
- </div>
1533
- </td>
1534
- </tr>
1535
- </table>
1536
- </div>
1537
- </details>
1538
- </div>
1539
- </div>
1540
- </div>
1541
- </div>
1542
- </div>
1543
- <p><br /></p>
1544
- <h3 id="graylog-services"><span style="color: red">Graylog Services</span></h3>
1545
-
1546
- <div class="doc doc-object doc-module">
1547
- <a id="app.services.Graylog.index"></a>
1548
- <div class="doc doc-contents first">
1549
- <div class="doc doc-children">
1550
- <div class="doc doc-object doc-class">
1551
- <h2 id="app.services.Graylog.index.IndexService" class="doc doc-heading">
1552
- <code>IndexService</code>
1553
- </h2>
1554
-
1555
- <div class="doc doc-contents">
1556
- <p>
1557
- A service class that encapsulates the logic for pulling index data
1558
- from Graylog
1559
- </p>
1560
-
1561
- <details class="quote">
1562
- <summary>
1563
- Source code in <code>app\services\Graylog\index.py</code>
1564
- </summary>
1565
- <div class="highlight">
1566
- <table class="highlighttable">
1567
- <tr>
1568
- <td class="linenos">
1569
- <div class="linenodiv">
1570
- <pre><span></span><span class="normal"><a href="#__codelineno-0-12"> 12</a></span>
1937
+</code></pre></div></td></tr></table></div>
1938
+ </details>
1939
+ </div>
1940
+
1941
+</div>
1942
+
1943
+
1944
+
1945
+ </div>
1946
+
1947
+ </div>
1948
+
1949
+</div><p><br></p>
1950
+<h3 id="graylog-services-index"><span style="color:red">Graylog Services Index</span></h3>
1951
+<h2 id="indexservice-class">IndexService Class</h2>
1952
+<p>The <code>index.py</code> file defines the <code>IndexService</code> class, which encapsulates the functionality for interacting with the Graylog indexing system.</p>
1953
+<h3 id="imports_1">Imports</h3>
1954
+<p>The script imports the following modules and services:</p>
1955
+<ul>
1956
+<li><code>requests</code>: A Python library for making HTTP requests.</li>
1957
+<li><code>loguru</code>: A third-party library providing a more convenient and powerful logger for Python.</li>
1958
+<li><code>typing</code>: A standard Python library for supporting type hints.</li>
1959
+<li><code>app.services.Graylog.universal.UniversalService</code>: The <code>UniversalService</code> class from the <code>app.services.Graylog.universal</code> module.</li>
1960
+</ul>
1961
+<h3 id="class-definition-indexservice">Class Definition: IndexService</h3>
1962
+<p>The <code>IndexService</code> class encapsulates the logic for pulling index data from Graylog. It provides the following methods:</p>
1963
+<ul>
1964
+<li><code>__init__</code>: Initializes the <code>IndexService</code> by collecting Graylog details using <code>UniversalService</code>.</li>
1965
+<li><code>collect_indices</code>: Collects the indices that are managed by Graylog.</li>
1966
+<li><code>_collect_managed_indices</code>: Core method for collecting indices from Graylog by making a GET request to the Graylog API endpoint <code>/api/system/indexer/indices</code>.</li>
1967
+<li><code>_extract_index_names</code>: Helper method to extract the names of the indices from the Graylog API response.</li>
1968
+<li><code>delete_index</code>: Deletes a specified index from Graylog.</li>
1969
+<li><code>_delete_index</code>: Core method for deleting an index from Graylog by making a DELETE request to the Graylog API endpoint <code>/api/system/indexer/indices/{index_name}</code>.</li>
1970
+</ul>
1971
+<h3 id="error-handling">Error Handling</h3>
1972
+<p>The script includes error handling using try/except blocks. When an error occurs, the error message is logged using <code>loguru</code>'s <code>logger.error</code> function, and a dictionary with a failure message and success status set to False is returned.</p>
1973
+<p>The <code>IndexService</code> class follows good practices for encapsulating functionality related to Graylog's indexing system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.</p>
1974
+
1975
+
1976
+<div class="doc doc-object doc-module">
1977
+
1978
+
1979
+<a id="app.services.Graylog.index"></a>
1980
+ <div class="doc doc-contents first">
1981
+
1982
+
1983
+
1984
+ <div class="doc doc-children">
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+<div class="doc doc-object doc-class">
1994
+
1995
+
1996
+
1997
+<h2 id="app.services.Graylog.index.IndexService" class="doc doc-heading">
1998
+ <code>IndexService</code>
1999
+
2000
+
2001
+</h2>
2002
+
2003
+
2004
+ <div class="doc doc-contents ">
2005
+
2006
+
2007
+ <p>A service class that encapsulates the logic for pulling index data from Graylog</p>
2008
+
2009
+
2010
+ <details class="quote">
2011
+ <summary>Source code in <code>app\services\Graylog\index.py</code></summary>
2012
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-12"> 12</a></span>
2013
<span class="normal"><a href="#__codelineno-0-13"> 13</a></span>
2014
<span class="normal"><a href="#__codelineno-0-14"> 14</a></span>
2015
<span class="normal"><a href="#__codelineno-0-15"> 15</a></span>
@@ -1704,12 +2146,7 @@
2146
<span class="normal"><a href="#__codelineno-0-146">146</a></span>
2147
<span class="normal"><a href="#__codelineno-0-147">147</a></span>
2148
<span class="normal"><a href="#__codelineno-0-148">148</a></span>
1707
-<span class="normal"><a href="#__codelineno-0-149">149</a></span></pre>
1708
- </div>
1709
- </td>
1710
- <td class="code">
1711
- <div>
1712
- <pre><span></span><code><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">class</span> <span class="nc">IndexService</span><span class="p">:</span>
2149
+<span class="normal"><a href="#__codelineno-0-149">149</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">class</span> <span class="nc">IndexService</span><span class="p">:</span>
2150
<a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="w"> </span><span class="sd">"""</span>
2151
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="sd"> A service class that encapsulates the logic for pulling index data from Graylog</span>
2152
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> """</span>
@@ -1847,43 +2284,38 @@
2284
<a id="__codelineno-0-147" name="__codelineno-0-147"></a> <span class="s2">"it cannot be deleted."</span><span class="p">,</span>
2285
<a id="__codelineno-0-148" name="__codelineno-0-148"></a> <span class="s2">"success"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
2286
<a id="__codelineno-0-149" name="__codelineno-0-149"></a> <span class="p">}</span>
1850
-</code></pre>
1851
- </div>
1852
- </td>
1853
- </tr>
1854
- </table>
1855
- </div>
1856
- </details>
1857
-
1858
- <div class="doc doc-children">
1859
- <div class="doc doc-object doc-function">
1860
- <h3
1861
- id="app.services.Graylog.index.IndexService.__init__"
1862
- class="doc doc-heading"
1863
- >
1864
- <code class="highlight language-python"
1865
- ><span class="fm">__init__</span
1866
- ><span class="p">()</span></code
1867
- >
1868
- </h3>
1869
-
1870
- <div class="doc doc-contents">
1871
- <p>
1872
- Initializes the IndexService by collecting Graylog
1873
- details.
1874
- </p>
1875
-
1876
- <details class="quote">
1877
- <summary>
1878
- Source code in
1879
- <code>app\services\Graylog\index.py</code>
1880
- </summary>
1881
- <div class="highlight">
1882
- <table class="highlighttable">
1883
- <tr>
1884
- <td class="linenos">
1885
- <div class="linenodiv">
1886
- <pre><span></span><span class="normal"><a href="#__codelineno-0-19">19</a></span>
2287
+</code></pre></div></td></tr></table></div>
2288
+ </details>
2289
+
2290
+
2291
+
2292
+ <div class="doc doc-children">
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+<div class="doc doc-object doc-function">
2303
+
2304
+
2305
+
2306
+<h3 id="app.services.Graylog.index.IndexService.__init__" class="doc doc-heading">
2307
+<code class="highlight language-python"><span class="fm">__init__</span><span class="p">()</span></code>
2308
+
2309
+</h3>
2310
+
2311
+
2312
+ <div class="doc doc-contents ">
2313
+
2314
+ <p>Initializes the IndexService by collecting Graylog details.</p>
2315
+
2316
+ <details class="quote">
2317
+ <summary>Source code in <code>app\services\Graylog\index.py</code></summary>
2318
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-19">19</a></span>
2319
<span class="normal"><a href="#__codelineno-0-20">20</a></span>
2320
<span class="normal"><a href="#__codelineno-0-21">21</a></span>
2321
<span class="normal"><a href="#__codelineno-0-22">22</a></span>
@@ -1891,12 +2323,7 @@
2323
<span class="normal"><a href="#__codelineno-0-24">24</a></span>
2324
<span class="normal"><a href="#__codelineno-0-25">25</a></span>
2325
<span class="normal"><a href="#__codelineno-0-26">26</a></span>
1894
-<span class="normal"><a href="#__codelineno-0-27">27</a></span></pre>
1895
- </div>
1896
- </td>
1897
- <td class="code">
1898
- <div>
1899
- <pre><span></span><code><a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
2326
+<span class="normal"><a href="#__codelineno-0-27">27</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
2327
<a id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="sd">"""</span>
2328
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd"> Initializes the IndexService by collecting Graylog details.</span>
2329
<a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="sd"> """</span>
@@ -1905,76 +2332,51 @@
2332
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_username</span><span class="p">,</span>
2333
<a id="__codelineno-0-26" name="__codelineno-0-26"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_password</span><span class="p">,</span>
2334
<a id="__codelineno-0-27" name="__codelineno-0-27"></a> <span class="p">)</span> <span class="o">=</span> <span class="n">UniversalService</span><span class="p">()</span><span class="o">.</span><span class="n">collect_graylog_details</span><span class="p">(</span><span class="s2">"Graylog"</span><span class="p">)</span>
1908
-</code></pre>
1909
- </div>
1910
- </td>
1911
- </tr>
1912
- </table>
1913
- </div>
1914
- </details>
1915
- </div>
1916
- </div>
1917
-
1918
- <div class="doc doc-object doc-function">
1919
- <h3
1920
- id="app.services.Graylog.index.IndexService.collect_indices"
1921
- class="doc doc-heading"
1922
- >
1923
- <code class="highlight language-python"
1924
- ><span class="n">collect_indices</span
1925
- ><span class="p">()</span></code
1926
- >
1927
- </h3>
1928
-
1929
- <div class="doc doc-contents">
1930
- <p>Collects the indices that are managed by Graylog.</p>
1931
-
1932
- <p><strong>Returns:</strong></p>
1933
- <table>
1934
- <thead>
1935
- <tr>
1936
- <th>Name</th>
1937
- <th>Type</th>
1938
- <th>Description</th>
1939
- </tr>
1940
- </thead>
1941
- <tbody>
1942
- <tr>
1943
- <td><code>dict</code></td>
1944
- <td>
1945
- <code
1946
- ><span title="typing.Dict">Dict</span
1947
- >[str,
1948
- <span title="typing.Union">Union</span
1949
- >[bool, str,
1950
- <span title="typing.Dict">Dict</span
1951
- >]]</code
1952
- >
1953
- </td>
1954
- <td>
1955
- <div class="doc-md-description">
1956
- <p>
1957
- A dictionary containing the success
1958
- status, a message, and potentially a
1959
- dictionary with indices.
1960
- </p>
1961
- </div>
1962
- </td>
1963
- </tr>
1964
- </tbody>
1965
- </table>
1966
-
1967
- <details class="quote">
1968
- <summary>
1969
- Source code in
1970
- <code>app\services\Graylog\index.py</code>
1971
- </summary>
1972
- <div class="highlight">
1973
- <table class="highlighttable">
1974
- <tr>
1975
- <td class="linenos">
1976
- <div class="linenodiv">
1977
- <pre><span></span><span class="normal"><a href="#__codelineno-0-29">29</a></span>
2335
+</code></pre></div></td></tr></table></div>
2336
+ </details>
2337
+ </div>
2338
+
2339
+</div>
2340
+
2341
+<div class="doc doc-object doc-function">
2342
+
2343
+
2344
+
2345
+<h3 id="app.services.Graylog.index.IndexService.collect_indices" class="doc doc-heading">
2346
+<code class="highlight language-python"><span class="n">collect_indices</span><span class="p">()</span></code>
2347
+
2348
+</h3>
2349
+
2350
+
2351
+ <div class="doc doc-contents ">
2352
+
2353
+ <p>Collects the indices that are managed by Graylog.</p>
2354
+
2355
+ <p><strong>Returns:</strong></p>
2356
+ <table>
2357
+ <thead>
2358
+ <tr>
2359
+<th>Name</th> <th>Type</th>
2360
+ <th>Description</th>
2361
+ </tr>
2362
+ </thead>
2363
+ <tbody>
2364
+ <tr>
2365
+<td><code>dict</code></td> <td>
2366
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[bool, str, <span title="typing.Dict">Dict</span>]]</code>
2367
+ </td>
2368
+ <td>
2369
+ <div class="doc-md-description">
2370
+ <p>A dictionary containing the success status, a message, and potentially a dictionary with indices.</p>
2371
+ </div>
2372
+ </td>
2373
+ </tr>
2374
+ </tbody>
2375
+ </table>
2376
+
2377
+ <details class="quote">
2378
+ <summary>Source code in <code>app\services\Graylog\index.py</code></summary>
2379
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-29">29</a></span>
2380
<span class="normal"><a href="#__codelineno-0-30">30</a></span>
2381
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
2382
<span class="normal"><a href="#__codelineno-0-32">32</a></span>
@@ -1994,12 +2396,7 @@
2396
<span class="normal"><a href="#__codelineno-0-46">46</a></span>
2397
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
2398
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
1997
-<span class="normal"><a href="#__codelineno-0-49">49</a></span></pre>
1998
- </div>
1999
- </td>
2000
- <td class="code">
2001
- <div>
2002
- <pre><span></span><code><a id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="k">def</span> <span class="nf">collect_indices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]]:</span>
2399
+<span class="normal"><a href="#__codelineno-0-49">49</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="k">def</span> <span class="nf">collect_indices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]]:</span>
2400
<a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="sd">"""</span>
2401
<a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="sd"> Collects the indices that are managed by Graylog.</span>
2402
<a id="__codelineno-0-32" name="__codelineno-0-32"></a>
@@ -2020,103 +2417,79 @@
2417
<a id="__codelineno-0-47" name="__codelineno-0-47"></a> <span class="n">managed_indices</span><span class="p">[</span><span class="s2">"index_names"</span><span class="p">]</span> <span class="o">=</span> <span class="n">index_names</span>
2418
<a id="__codelineno-0-48" name="__codelineno-0-48"></a>
2419
<a id="__codelineno-0-49" name="__codelineno-0-49"></a> <span class="k">return</span> <span class="n">managed_indices</span>
2023
-</code></pre>
2024
- </div>
2025
- </td>
2026
- </tr>
2027
- </table>
2028
- </div>
2029
- </details>
2030
- </div>
2031
- </div>
2032
-
2033
- <div class="doc doc-object doc-function">
2034
- <h3
2035
- id="app.services.Graylog.index.IndexService.delete_index"
2036
- class="doc doc-heading"
2037
- >
2038
- <code class="highlight language-python"
2039
- ><span class="n">delete_index</span
2040
- ><span class="p">(</span
2041
- ><span class="n">index_name</span
2042
- ><span class="p">)</span></code
2043
- >
2044
- </h3>
2045
-
2046
- <div class="doc doc-contents">
2047
- <p>Deletes the specified index from Graylog.</p>
2048
-
2049
- <p><strong>Parameters:</strong></p>
2050
- <table>
2051
- <thead>
2052
- <tr>
2053
- <th>Name</th>
2054
- <th>Type</th>
2055
- <th>Description</th>
2056
- <th>Default</th>
2057
- </tr>
2058
- </thead>
2059
- <tbody>
2060
- <tr>
2061
- <td><code>index_name</code></td>
2062
- <td>
2063
- <code>str</code>
2064
- </td>
2065
- <td>
2066
- <div class="doc-md-description">
2067
- <p>The name of the index to delete.</p>
2068
- </div>
2069
- </td>
2070
- <td>
2071
- <em>required</em>
2072
- </td>
2073
- </tr>
2074
- </tbody>
2075
- </table>
2076
-
2077
- <p><strong>Returns:</strong></p>
2078
- <table>
2079
- <thead>
2080
- <tr>
2081
- <th>Name</th>
2082
- <th>Type</th>
2083
- <th>Description</th>
2084
- </tr>
2085
- </thead>
2086
- <tbody>
2087
- <tr>
2088
- <td><code>dict</code></td>
2089
- <td>
2090
- <code
2091
- ><span title="typing.Dict">Dict</span
2092
- >[str,
2093
- <span title="typing.Union">Union</span
2094
- >[bool, str]]</code
2095
- >
2096
- </td>
2097
- <td>
2098
- <div class="doc-md-description">
2099
- <p>
2100
- A dictionary containing the
2101
- response.
2102
- </p>
2103
- </div>
2104
- </td>
2105
- </tr>
2106
- </tbody>
2107
- </table>
2108
-
2109
- <details class="quote">
2110
- <summary>
2111
- Source code in
2112
- <code>app\services\Graylog\index.py</code>
2113
- </summary>
2114
- <div class="highlight">
2115
- <table class="highlighttable">
2116
- <tr>
2117
- <td class="linenos">
2118
- <div class="linenodiv">
2119
- <pre><span></span><span class="normal"><a href="#__codelineno-0-87"> 87</a></span>
2420
+</code></pre></div></td></tr></table></div>
2421
+ </details>
2422
+ </div>
2423
+
2424
+</div>
2425
+
2426
+<div class="doc doc-object doc-function">
2427
+
2428
+
2429
+
2430
+<h3 id="app.services.Graylog.index.IndexService.delete_index" class="doc doc-heading">
2431
+<code class="highlight language-python"><span class="n">delete_index</span><span class="p">(</span><span class="n">index_name</span><span class="p">)</span></code>
2432
+
2433
+</h3>
2434
+
2435
+
2436
+ <div class="doc doc-contents ">
2437
+
2438
+ <p>Deletes the specified index from Graylog.</p>
2439
+
2440
+ <p><strong>Parameters:</strong></p>
2441
+ <table>
2442
+ <thead>
2443
+ <tr>
2444
+ <th>Name</th>
2445
+ <th>Type</th>
2446
+ <th>Description</th>
2447
+ <th>Default</th>
2448
+ </tr>
2449
+ </thead>
2450
+ <tbody>
2451
+ <tr>
2452
+ <td><code>index_name</code></td>
2453
+ <td>
2454
+ <code>str</code>
2455
+ </td>
2456
+ <td>
2457
+ <div class="doc-md-description">
2458
+ <p>The name of the index to delete.</p>
2459
+ </div>
2460
+ </td>
2461
+ <td>
2462
+ <em>required</em>
2463
+ </td>
2464
+ </tr>
2465
+ </tbody>
2466
+ </table>
2467
+
2468
+ <p><strong>Returns:</strong></p>
2469
+ <table>
2470
+ <thead>
2471
+ <tr>
2472
+<th>Name</th> <th>Type</th>
2473
+ <th>Description</th>
2474
+ </tr>
2475
+ </thead>
2476
+ <tbody>
2477
+ <tr>
2478
+<td><code>dict</code></td> <td>
2479
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[bool, str]]</code>
2480
+ </td>
2481
+ <td>
2482
+ <div class="doc-md-description">
2483
+ <p>A dictionary containing the response.</p>
2484
+ </div>
2485
+ </td>
2486
+ </tr>
2487
+ </tbody>
2488
+ </table>
2489
+
2490
+ <details class="quote">
2491
+ <summary>Source code in <code>app\services\Graylog\index.py</code></summary>
2492
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-87"> 87</a></span>
2493
<span class="normal"><a href="#__codelineno-0-88"> 88</a></span>
2494
<span class="normal"><a href="#__codelineno-0-89"> 89</a></span>
2495
<span class="normal"><a href="#__codelineno-0-90"> 90</a></span>
@@ -2149,12 +2522,7 @@
2522
<span class="normal"><a href="#__codelineno-0-117">117</a></span>
2523
<span class="normal"><a href="#__codelineno-0-118">118</a></span>
2524
<span class="normal"><a href="#__codelineno-0-119">119</a></span>
2152
-<span class="normal"><a href="#__codelineno-0-120">120</a></span></pre>
2153
- </div>
2154
- </td>
2155
- <td class="code">
2156
- <div>
2157
- <pre><span></span><code><a id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]:</span>
2525
+<span class="normal"><a href="#__codelineno-0-120">120</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="k">def</span> <span class="nf">delete_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]:</span>
2526
<a id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="w"> </span><span class="sd">"""</span>
2527
<a id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="sd"> Deletes the specified index from Graylog.</span>
2528
<a id="__codelineno-0-90" name="__codelineno-0-90"></a>
@@ -2188,47 +2556,89 @@
2556
<a id="__codelineno-0-118" name="__codelineno-0-118"></a> <span class="s2">"message"</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"Failed to delete index </span><span class="si">{</span><span class="n">index_name</span><span class="si">}</span><span class="s2"> from Graylog"</span><span class="p">,</span>
2557
<a id="__codelineno-0-119" name="__codelineno-0-119"></a> <span class="s2">"success"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
2558
<a id="__codelineno-0-120" name="__codelineno-0-120"></a> <span class="p">}</span>
2191
-</code></pre>
2192
- </div>
2193
- </td>
2194
- </tr>
2195
- </table>
2196
- </div>
2197
- </details>
2198
- </div>
2199
- </div>
2200
- </div>
2201
- </div>
2202
- </div>
2203
- </div>
2204
- </div>
2205
- </div>
2206
-
2207
- <div class="doc doc-object doc-module">
2208
- <a id="app.services.Graylog.inputs"></a>
2209
- <div class="doc doc-contents first">
2210
- <div class="doc doc-children">
2211
- <div class="doc doc-object doc-class">
2212
- <h2 id="app.services.Graylog.inputs.InputsService" class="doc doc-heading">
2213
- <code>InputsService</code>
2214
- </h2>
2215
-
2216
- <div class="doc doc-contents">
2217
- <p>
2218
- A service class that encapsulates the logic for pulling index data
2219
- from Graylog
2220
- </p>
2221
-
2222
- <details class="quote">
2223
- <summary>
2224
- Source code in <code>app\services\Graylog\inputs.py</code>
2225
- </summary>
2226
- <div class="highlight">
2227
- <table class="highlighttable">
2228
- <tr>
2229
- <td class="linenos">
2230
- <div class="linenodiv">
2231
- <pre><span></span><span class="normal"><a href="#__codelineno-0-14"> 14</a></span>
2559
+</code></pre></div></td></tr></table></div>
2560
+ </details>
2561
+ </div>
2562
+
2563
+</div>
2564
+
2565
+
2566
+
2567
+ </div>
2568
+
2569
+ </div>
2570
+
2571
+</div>
2572
+
2573
+
2574
+
2575
+
2576
+ </div>
2577
+
2578
+ </div>
2579
+
2580
+</div><h3 id="graylog-services-inputs"><span style="color:red">Graylog Services Inputs</span></h3>
2581
+<h2 id="inputsservice-class">InputsService Class</h2>
2582
+<p>The <code>inputs.py</code> file defines the <code>InputsService</code> class, which encapsulates the functionality for interacting with the Graylog input system.</p>
2583
+<h3 id="imports_2">Imports</h3>
2584
+<p>The script imports the following modules and services:</p>
2585
+<ul>
2586
+<li><code>requests</code>: A Python library for making HTTP requests.</li>
2587
+<li><code>loguru</code>: A third-party library providing a more convenient and powerful logger for Python.</li>
2588
+<li><code>typing</code>: A standard Python library for supporting type hints.</li>
2589
+<li><code>app.services.Graylog.universal.UniversalService</code>: The <code>UniversalService</code> class from the <code>app.services.Graylog.universal</code> module.</li>
2590
+</ul>
2591
+<h3 id="class-definition-inputsservice">Class Definition: InputsService</h3>
2592
+<p>The <code>InputsService</code> class encapsulates the logic for pulling input data from Graylog. It provides the following methods:</p>
2593
+<ul>
2594
+<li><code>__init__</code>: Initializes the <code>InputsService</code> by collecting Graylog details using <code>UniversalService</code>.</li>
2595
+<li><code>collect_running_inputs</code>: Collects the running inputs that are managed by Graylog.</li>
2596
+<li><code>_collect_running_inputs</code>: Core method for collecting running inputs from Graylog by making a GET request to the Graylog API endpoint <code>/api/system/inputstates</code>.</li>
2597
+<li><code>collect_configured_inputs</code>: Collects the configured inputs that are managed by Graylog.</li>
2598
+<li><code>_collect_configured_inputs</code>: Core method for collecting configured inputs from Graylog by making a GET request to the Graylog API endpoint <code>/api/system/inputs</code>.</li>
2599
+</ul>
2600
+<h3 id="error-handling_1">Error Handling</h3>
2601
+<p>The script includes error handling using try/except blocks. When an error occurs, the error message is logged using <code>loguru</code>'s <code>logger.error</code> function, and a dictionary with a failure message and success status set to False is returned.</p>
2602
+<p>The <code>InputsService</code> class follows good practices for encapsulating functionality related to Graylog's input system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.</p>
2603
+
2604
+
2605
+<div class="doc doc-object doc-module">
2606
+
2607
+
2608
+<a id="app.services.Graylog.inputs"></a>
2609
+ <div class="doc doc-contents first">
2610
+
2611
+
2612
+
2613
+ <div class="doc doc-children">
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+<div class="doc doc-object doc-class">
2623
+
2624
+
2625
+
2626
+<h2 id="app.services.Graylog.inputs.InputsService" class="doc doc-heading">
2627
+ <code>InputsService</code>
2628
+
2629
+
2630
+</h2>
2631
+
2632
+
2633
+ <div class="doc doc-contents ">
2634
+
2635
+
2636
+ <p>A service class that encapsulates the logic for pulling index data from Graylog</p>
2637
+
2638
+
2639
+ <details class="quote">
2640
+ <summary>Source code in <code>app\services\Graylog\inputs.py</code></summary>
2641
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-14"> 14</a></span>
2642
<span class="normal"><a href="#__codelineno-0-15"> 15</a></span>
2643
<span class="normal"><a href="#__codelineno-0-16"> 16</a></span>
2644
<span class="normal"><a href="#__codelineno-0-17"> 17</a></span>
@@ -2352,12 +2762,7 @@
2762
<span class="normal"><a href="#__codelineno-0-135">135</a></span>
2763
<span class="normal"><a href="#__codelineno-0-136">136</a></span>
2764
<span class="normal"><a href="#__codelineno-0-137">137</a></span>
2355
-<span class="normal"><a href="#__codelineno-0-138">138</a></span></pre>
2356
- </div>
2357
- </td>
2358
- <td class="code">
2359
- <div>
2360
- <pre><span></span><code><a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">class</span> <span class="nc">InputsService</span><span class="p">:</span>
2765
+<span class="normal"><a href="#__codelineno-0-138">138</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">class</span> <span class="nc">InputsService</span><span class="p">:</span>
2766
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="w"> </span><span class="sd">"""</span>
2767
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> A service class that encapsulates the logic for pulling index data from Graylog</span>
2768
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd"> """</span>
@@ -2482,43 +2887,38 @@
2887
<a id="__codelineno-0-136" name="__codelineno-0-136"></a> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
2888
<a id="__codelineno-0-137" name="__codelineno-0-137"></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Failed to collect configured inputs: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
2889
<a id="__codelineno-0-138" name="__codelineno-0-138"></a> <span class="k">return</span> <span class="p">{</span><span class="s2">"message"</span><span class="p">:</span> <span class="s2">"Failed to collect configured inputs"</span><span class="p">,</span> <span class="s2">"success"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
2485
-</code></pre>
2486
- </div>
2487
- </td>
2488
- </tr>
2489
- </table>
2490
- </div>
2491
- </details>
2492
-
2493
- <div class="doc doc-children">
2494
- <div class="doc doc-object doc-function">
2495
- <h3
2496
- id="app.services.Graylog.inputs.InputsService.__init__"
2497
- class="doc doc-heading"
2498
- >
2499
- <code class="highlight language-python"
2500
- ><span class="fm">__init__</span
2501
- ><span class="p">()</span></code
2502
- >
2503
- </h3>
2504
-
2505
- <div class="doc doc-contents">
2506
- <p>
2507
- Initializes the InputsService by collecting Graylog
2508
- details.
2509
- </p>
2510
-
2511
- <details class="quote">
2512
- <summary>
2513
- Source code in
2514
- <code>app\services\Graylog\inputs.py</code>
2515
- </summary>
2516
- <div class="highlight">
2517
- <table class="highlighttable">
2518
- <tr>
2519
- <td class="linenos">
2520
- <div class="linenodiv">
2521
- <pre><span></span><span class="normal"><a href="#__codelineno-0-21">21</a></span>
2890
+</code></pre></div></td></tr></table></div>
2891
+ </details>
2892
+
2893
+
2894
+
2895
+ <div class="doc doc-children">
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+<div class="doc doc-object doc-function">
2906
+
2907
+
2908
+
2909
+<h3 id="app.services.Graylog.inputs.InputsService.__init__" class="doc doc-heading">
2910
+<code class="highlight language-python"><span class="fm">__init__</span><span class="p">()</span></code>
2911
+
2912
+</h3>
2913
+
2914
+
2915
+ <div class="doc doc-contents ">
2916
+
2917
+ <p>Initializes the InputsService by collecting Graylog details.</p>
2918
+
2919
+ <details class="quote">
2920
+ <summary>Source code in <code>app\services\Graylog\inputs.py</code></summary>
2921
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-21">21</a></span>
2922
<span class="normal"><a href="#__codelineno-0-22">22</a></span>
2923
<span class="normal"><a href="#__codelineno-0-23">23</a></span>
2924
<span class="normal"><a href="#__codelineno-0-24">24</a></span>
@@ -2526,12 +2926,7 @@
2926
<span class="normal"><a href="#__codelineno-0-26">26</a></span>
2927
<span class="normal"><a href="#__codelineno-0-27">27</a></span>
2928
<span class="normal"><a href="#__codelineno-0-28">28</a></span>
2529
-<span class="normal"><a href="#__codelineno-0-29">29</a></span></pre>
2530
- </div>
2531
- </td>
2532
- <td class="code">
2533
- <div>
2534
- <pre><span></span><code><a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
2929
+<span class="normal"><a href="#__codelineno-0-29">29</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
2930
<a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="sd">"""</span>
2931
<a id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="sd"> Initializes the InputsService by collecting Graylog details.</span>
2932
<a id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="sd"> """</span>
@@ -2540,82 +2935,51 @@
2935
<a id="__codelineno-0-27" name="__codelineno-0-27"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_username</span><span class="p">,</span>
2936
<a id="__codelineno-0-28" name="__codelineno-0-28"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_password</span><span class="p">,</span>
2937
<a id="__codelineno-0-29" name="__codelineno-0-29"></a> <span class="p">)</span> <span class="o">=</span> <span class="n">UniversalService</span><span class="p">()</span><span class="o">.</span><span class="n">collect_graylog_details</span><span class="p">(</span><span class="s2">"Graylog"</span><span class="p">)</span>
2543
-</code></pre>
2544
- </div>
2545
- </td>
2546
- </tr>
2547
- </table>
2548
- </div>
2549
- </details>
2550
- </div>
2551
- </div>
2552
-
2553
- <div class="doc doc-object doc-function">
2554
- <h3
2555
- id="app.services.Graylog.inputs.InputsService.collect_configured_inputs"
2556
- class="doc doc-heading"
2557
- >
2558
- <code class="highlight language-python"
2559
- ><span class="n">collect_configured_inputs</span
2560
- ><span class="p">()</span></code
2561
- >
2562
- </h3>
2563
-
2564
- <div class="doc doc-contents">
2565
- <p>
2566
- Collects the configured inputs that are managed by
2567
- Graylog.
2568
- </p>
2569
-
2570
- <p><strong>Returns:</strong></p>
2571
- <table>
2572
- <thead>
2573
- <tr>
2574
- <th>Name</th>
2575
- <th>Type</th>
2576
- <th>Description</th>
2577
- </tr>
2578
- </thead>
2579
- <tbody>
2580
- <tr>
2581
- <td><code>dict</code></td>
2582
- <td>
2583
- <code
2584
- ><span title="typing.Dict">Dict</span
2585
- >[str,
2586
- <span title="typing.Union">Union</span
2587
- >[bool, str,
2588
- <span title="typing.List">List</span
2589
- >[<span title="typing.Dict">Dict</span
2590
- >[str,
2591
- <span title="typing.Union">Union</span
2592
- >[str, int]]]]]</code
2593
- >
2594
- </td>
2595
- <td>
2596
- <div class="doc-md-description">
2597
- <p>
2598
- A dictionary containing the success
2599
- status, a message, and potentially a
2600
- list of configured inputs.
2601
- </p>
2602
- </div>
2603
- </td>
2604
- </tr>
2605
- </tbody>
2606
- </table>
2607
-
2608
- <details class="quote">
2609
- <summary>
2610
- Source code in
2611
- <code>app\services\Graylog\inputs.py</code>
2612
- </summary>
2613
- <div class="highlight">
2614
- <table class="highlighttable">
2615
- <tr>
2616
- <td class="linenos">
2617
- <div class="linenodiv">
2618
- <pre><span></span><span class="normal"><a href="#__codelineno-0-86"> 86</a></span>
2938
+</code></pre></div></td></tr></table></div>
2939
+ </details>
2940
+ </div>
2941
+
2942
+</div>
2943
+
2944
+<div class="doc doc-object doc-function">
2945
+
2946
+
2947
+
2948
+<h3 id="app.services.Graylog.inputs.InputsService.collect_configured_inputs" class="doc doc-heading">
2949
+<code class="highlight language-python"><span class="n">collect_configured_inputs</span><span class="p">()</span></code>
2950
+
2951
+</h3>
2952
+
2953
+
2954
+ <div class="doc doc-contents ">
2955
+
2956
+ <p>Collects the configured inputs that are managed by Graylog.</p>
2957
+
2958
+ <p><strong>Returns:</strong></p>
2959
+ <table>
2960
+ <thead>
2961
+ <tr>
2962
+<th>Name</th> <th>Type</th>
2963
+ <th>Description</th>
2964
+ </tr>
2965
+ </thead>
2966
+ <tbody>
2967
+ <tr>
2968
+<td><code>dict</code></td> <td>
2969
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[bool, str, <span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[str, int]]]]]</code>
2970
+ </td>
2971
+ <td>
2972
+ <div class="doc-md-description">
2973
+ <p>A dictionary containing the success status, a message, and potentially a list of configured inputs.</p>
2974
+ </div>
2975
+ </td>
2976
+ </tr>
2977
+ </tbody>
2978
+ </table>
2979
+
2980
+ <details class="quote">
2981
+ <summary>Source code in <code>app\services\Graylog\inputs.py</code></summary>
2982
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-86"> 86</a></span>
2983
<span class="normal"><a href="#__codelineno-0-87"> 87</a></span>
2984
<span class="normal"><a href="#__codelineno-0-88"> 88</a></span>
2985
<span class="normal"><a href="#__codelineno-0-89"> 89</a></span>
@@ -2634,12 +2998,7 @@
2998
<span class="normal"><a href="#__codelineno-0-102">102</a></span>
2999
<span class="normal"><a href="#__codelineno-0-103">103</a></span>
3000
<span class="normal"><a href="#__codelineno-0-104">104</a></span>
2637
-<span class="normal"><a href="#__codelineno-0-105">105</a></span></pre>
2638
- </div>
2639
- </td>
2640
- <td class="code">
2641
- <div>
2642
- <pre><span></span><code><a id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="k">def</span> <span class="nf">collect_configured_inputs</span><span class="p">(</span>
3001
+<span class="normal"><a href="#__codelineno-0-105">105</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="k">def</span> <span class="nf">collect_configured_inputs</span><span class="p">(</span>
3002
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="bp">self</span><span class="p">,</span>
3003
<a id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">]]]]]:</span>
3004
<a id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="w"> </span><span class="sd">"""</span>
@@ -2659,81 +3018,51 @@
3018
<a id="__codelineno-0-103" name="__codelineno-0-103"></a>
3019
<a id="__codelineno-0-104" name="__codelineno-0-104"></a> <span class="k">if</span> <span class="n">configured_inputs</span><span class="p">[</span><span class="s2">"success"</span><span class="p">]:</span>
3020
<a id="__codelineno-0-105" name="__codelineno-0-105"></a> <span class="k">return</span> <span class="n">configured_inputs</span>
2662
-</code></pre>
2663
- </div>
2664
- </td>
2665
- </tr>
2666
- </table>
2667
- </div>
2668
- </details>
2669
- </div>
2670
- </div>
2671
-
2672
- <div class="doc doc-object doc-function">
2673
- <h3
2674
- id="app.services.Graylog.inputs.InputsService.collect_running_inputs"
2675
- class="doc doc-heading"
2676
- >
2677
- <code class="highlight language-python"
2678
- ><span class="n">collect_running_inputs</span
2679
- ><span class="p">()</span></code
2680
- >
2681
- </h3>
2682
-
2683
- <div class="doc doc-contents">
2684
- <p>
2685
- Collects the running inputs that are managed by Graylog.
2686
- </p>
2687
-
2688
- <p><strong>Returns:</strong></p>
2689
- <table>
2690
- <thead>
2691
- <tr>
2692
- <th>Name</th>
2693
- <th>Type</th>
2694
- <th>Description</th>
2695
- </tr>
2696
- </thead>
2697
- <tbody>
2698
- <tr>
2699
- <td><code>dict</code></td>
2700
- <td>
2701
- <code
2702
- ><span title="typing.Dict">Dict</span
2703
- >[str,
2704
- <span title="typing.Union">Union</span
2705
- >[bool, str,
2706
- <span title="typing.List">List</span
2707
- >[<span title="typing.Dict">Dict</span
2708
- >[str,
2709
- <span title="typing.Union">Union</span
2710
- >[str, int]]]]]</code
2711
- >
2712
- </td>
2713
- <td>
2714
- <div class="doc-md-description">
2715
- <p>
2716
- A dictionary containing the success
2717
- status, a message, and potentially a
2718
- list of running inputs.
2719
- </p>
2720
- </div>
2721
- </td>
2722
- </tr>
2723
- </tbody>
2724
- </table>
2725
-
2726
- <details class="quote">
2727
- <summary>
2728
- Source code in
2729
- <code>app\services\Graylog\inputs.py</code>
2730
- </summary>
2731
- <div class="highlight">
2732
- <table class="highlighttable">
2733
- <tr>
2734
- <td class="linenos">
2735
- <div class="linenodiv">
2736
- <pre><span></span><span class="normal"><a href="#__codelineno-0-31">31</a></span>
3021
+</code></pre></div></td></tr></table></div>
3022
+ </details>
3023
+ </div>
3024
+
3025
+</div>
3026
+
3027
+<div class="doc doc-object doc-function">
3028
+
3029
+
3030
+
3031
+<h3 id="app.services.Graylog.inputs.InputsService.collect_running_inputs" class="doc doc-heading">
3032
+<code class="highlight language-python"><span class="n">collect_running_inputs</span><span class="p">()</span></code>
3033
+
3034
+</h3>
3035
+
3036
+
3037
+ <div class="doc doc-contents ">
3038
+
3039
+ <p>Collects the running inputs that are managed by Graylog.</p>
3040
+
3041
+ <p><strong>Returns:</strong></p>
3042
+ <table>
3043
+ <thead>
3044
+ <tr>
3045
+<th>Name</th> <th>Type</th>
3046
+ <th>Description</th>
3047
+ </tr>
3048
+ </thead>
3049
+ <tbody>
3050
+ <tr>
3051
+<td><code>dict</code></td> <td>
3052
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[bool, str, <span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[str, int]]]]]</code>
3053
+ </td>
3054
+ <td>
3055
+ <div class="doc-md-description">
3056
+ <p>A dictionary containing the success status, a message, and potentially a list of running inputs.</p>
3057
+ </div>
3058
+ </td>
3059
+ </tr>
3060
+ </tbody>
3061
+ </table>
3062
+
3063
+ <details class="quote">
3064
+ <summary>Source code in <code>app\services\Graylog\inputs.py</code></summary>
3065
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-31">31</a></span>
3066
<span class="normal"><a href="#__codelineno-0-32">32</a></span>
3067
<span class="normal"><a href="#__codelineno-0-33">33</a></span>
3068
<span class="normal"><a href="#__codelineno-0-34">34</a></span>
@@ -2752,12 +3081,7 @@
3081
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
3082
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
3083
<span class="normal"><a href="#__codelineno-0-49">49</a></span>
2755
-<span class="normal"><a href="#__codelineno-0-50">50</a></span></pre>
2756
- </div>
2757
- </td>
2758
- <td class="code">
2759
- <div>
2760
- <pre><span></span><code><a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="k">def</span> <span class="nf">collect_running_inputs</span><span class="p">(</span>
3084
+<span class="normal"><a href="#__codelineno-0-50">50</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="k">def</span> <span class="nf">collect_running_inputs</span><span class="p">(</span>
3085
<a id="__codelineno-0-32" name="__codelineno-0-32"></a> <span class="bp">self</span><span class="p">,</span>
3086
<a id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">]]]]]:</span>
3087
<a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="sd">"""</span>
@@ -2777,50 +3101,88 @@
3101
<a id="__codelineno-0-48" name="__codelineno-0-48"></a>
3102
<a id="__codelineno-0-49" name="__codelineno-0-49"></a> <span class="k">if</span> <span class="n">running_inputs</span><span class="p">[</span><span class="s2">"success"</span><span class="p">]:</span>
3103
<a id="__codelineno-0-50" name="__codelineno-0-50"></a> <span class="k">return</span> <span class="n">running_inputs</span>
2780
-</code></pre>
2781
- </div>
2782
- </td>
2783
- </tr>
2784
- </table>
2785
- </div>
2786
- </details>
2787
- </div>
2788
- </div>
2789
- </div>
2790
- </div>
2791
- </div>
2792
- </div>
2793
- </div>
2794
- </div>
2795
-
2796
- <div class="doc doc-object doc-module">
2797
- <a id="app.services.Graylog.messages"></a>
2798
- <div class="doc doc-contents first">
2799
- <div class="doc doc-children">
2800
- <div class="doc doc-object doc-class">
2801
- <h2
2802
- id="app.services.Graylog.messages.MessagesService"
2803
- class="doc doc-heading"
2804
- >
2805
- <code>MessagesService</code>
2806
- </h2>
2807
-
2808
- <div class="doc doc-contents">
2809
- <p>
2810
- A service class that encapsulates the logic for polling messages
2811
- from Graylog.
2812
- </p>
2813
-
2814
- <details class="quote">
2815
- <summary>
2816
- Source code in <code>app\services\Graylog\messages.py</code>
2817
- </summary>
2818
- <div class="highlight">
2819
- <table class="highlighttable">
2820
- <tr>
2821
- <td class="linenos">
2822
- <div class="linenodiv">
2823
- <pre><span></span><span class="normal"><a href="#__codelineno-0-13">13</a></span>
3104
+</code></pre></div></td></tr></table></div>
3105
+ </details>
3106
+ </div>
3107
+
3108
+</div>
3109
+
3110
+
3111
+
3112
+ </div>
3113
+
3114
+ </div>
3115
+
3116
+</div>
3117
+
3118
+
3119
+
3120
+
3121
+ </div>
3122
+
3123
+ </div>
3124
+
3125
+</div><h3 id="graylog-services-messages"><span style="color:red">Graylog Services Messages</span></h3>
3126
+<h2 id="messagesservice-class">MessagesService Class</h2>
3127
+<p>The <code>messages.py</code> file defines the <code>MessagesService</code> class, which encapsulates the functionality for interacting with the Graylog message system.</p>
3128
+<h3 id="imports_3">Imports</h3>
3129
+<p>The script imports the following modules and services:</p>
3130
+<ul>
3131
+<li><code>requests</code>: A Python library for making HTTP requests.</li>
3132
+<li><code>loguru</code>: A third-party library providing a more convenient and powerful logger for Python.</li>
3133
+<li><code>typing</code>: A standard Python library for supporting type hints.</li>
3134
+<li><code>app.services.Graylog.universal.UniversalService</code>: The <code>UniversalService</code> class from the <code>app.services.Graylog.universal</code> module.</li>
3135
+</ul>
3136
+<h3 id="class-definition-messagesservice">Class Definition: MessagesService</h3>
3137
+<p>The <code>MessagesService</code> class encapsulates the logic for polling messages from Graylog. It provides the following methods:</p>
3138
+<ul>
3139
+<li><code>__init__</code>: Initializes the <code>MessagesService</code> by collecting Graylog details using <code>UniversalService</code>.</li>
3140
+<li><code>_get_messages_from_graylog</code>: Fetches messages from Graylog for a specific page number by making a GET request to the Graylog API endpoint <code>/api/system/messages?page={page_number}</code>.</li>
3141
+<li><code>_handle_message_fetch_error</code>: Helper method for handling exceptions that occur while fetching messages.</li>
3142
+<li><code>collect_messages</code>: Collects the latest 10 messages from Graylog.</li>
3143
+</ul>
3144
+<h3 id="error-handling_2">Error Handling</h3>
3145
+<p>The script includes error handling using try/except blocks. When an error occurs while fetching messages, the <code>_handle_message_fetch_error</code> helper method is used to handle the exception.</p>
3146
+<p>The <code>MessagesService</code> class follows good practices for encapsulating functionality related to Graylog's message system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.</p>
3147
+
3148
+
3149
+<div class="doc doc-object doc-module">
3150
+
3151
+
3152
+<a id="app.services.Graylog.messages"></a>
3153
+ <div class="doc doc-contents first">
3154
+
3155
+
3156
+
3157
+ <div class="doc doc-children">
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+<div class="doc doc-object doc-class">
3167
+
3168
+
3169
+
3170
+<h2 id="app.services.Graylog.messages.MessagesService" class="doc doc-heading">
3171
+ <code>MessagesService</code>
3172
+
3173
+
3174
+</h2>
3175
+
3176
+
3177
+ <div class="doc doc-contents ">
3178
+
3179
+
3180
+ <p>A service class that encapsulates the logic for polling messages from Graylog.</p>
3181
+
3182
+
3183
+ <details class="quote">
3184
+ <summary>Source code in <code>app\services\Graylog\messages.py</code></summary>
3185
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-13">13</a></span>
3186
<span class="normal"><a href="#__codelineno-0-14">14</a></span>
3187
<span class="normal"><a href="#__codelineno-0-15">15</a></span>
3188
<span class="normal"><a href="#__codelineno-0-16">16</a></span>
@@ -2887,12 +3249,7 @@
3249
<span class="normal"><a href="#__codelineno-0-77">77</a></span>
3250
<span class="normal"><a href="#__codelineno-0-78">78</a></span>
3251
<span class="normal"><a href="#__codelineno-0-79">79</a></span>
2890
-<span class="normal"><a href="#__codelineno-0-80">80</a></span></pre>
2891
- </div>
2892
- </td>
2893
- <td class="code">
2894
- <div>
2895
- <pre><span></span><code><a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">class</span> <span class="nc">MessagesService</span><span class="p">:</span>
3252
+<span class="normal"><a href="#__codelineno-0-80">80</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">class</span> <span class="nc">MessagesService</span><span class="p">:</span>
3253
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="sd">"""</span>
3254
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> A service class that encapsulates the logic for polling messages from Graylog.</span>
3255
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> """</span>
@@ -2960,78 +3317,60 @@
3317
<a id="__codelineno-0-78" name="__codelineno-0-78"></a> <span class="p">}</span>
3318
<a id="__codelineno-0-79" name="__codelineno-0-79"></a> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
3319
<a id="__codelineno-0-80" name="__codelineno-0-80"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_handle_message_fetch_error</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
2963
-</code></pre>
2964
- </div>
2965
- </td>
2966
- </tr>
2967
- </table>
2968
- </div>
2969
- </details>
2970
-
2971
- <div class="doc doc-children">
2972
- <div class="doc doc-object doc-function">
2973
- <h3
2974
- id="app.services.Graylog.messages.MessagesService.collect_messages"
2975
- class="doc doc-heading"
2976
- >
2977
- <code class="highlight language-python"
2978
- ><span class="n">collect_messages</span
2979
- ><span class="p">()</span></code
2980
- >
2981
- </h3>
2982
-
2983
- <div class="doc doc-contents">
2984
- <p>Collects the latest 10 messages from Graylog.</p>
2985
-
2986
- <p><strong>Returns:</strong></p>
2987
- <table>
2988
- <thead>
2989
- <tr>
2990
- <th>Name</th>
2991
- <th>Type</th>
2992
- <th>Description</th>
2993
- </tr>
2994
- </thead>
2995
- <tbody>
2996
- <tr>
2997
- <td><code>dict</code></td>
2998
- <td>
2999
- <code
3000
- ><span title="typing.Dict">Dict</span
3001
- >[str,
3002
- <span title="typing.Union">Union</span
3003
- >[str, bool,
3004
- <span title="typing.List">List</span
3005
- >[<span title="typing.Dict">Dict</span
3006
- >[str,
3007
- <span title="typing.Any">Any</span
3008
- >]]]]</code
3009
- >
3010
- </td>
3011
- <td>
3012
- <div class="doc-md-description">
3013
- <p>
3014
- A dictionary containing the success
3015
- status, a message, and potentially a
3016
- list of Graylog messages.
3017
- </p>
3018
- </div>
3019
- </td>
3020
- </tr>
3021
- </tbody>
3022
- </table>
3023
-
3024
- <details class="quote">
3025
- <summary>
3026
- Source code in
3027
- <code>app\services\Graylog\messages.py</code>
3028
- </summary>
3029
- <div class="highlight">
3030
- <table class="highlighttable">
3031
- <tr>
3032
- <td class="linenos">
3033
- <div class="linenodiv">
3034
- <pre><span></span><span class="normal"><a href="#__codelineno-0-44">44</a></span>
3320
+</code></pre></div></td></tr></table></div>
3321
+ </details>
3322
+
3323
+
3324
+
3325
+ <div class="doc doc-children">
3326
+
3327
+
3328
+
3329
+
3330
+
3331
+
3332
+
3333
+
3334
+
3335
+<div class="doc doc-object doc-function">
3336
+
3337
+
3338
+
3339
+<h3 id="app.services.Graylog.messages.MessagesService.collect_messages" class="doc doc-heading">
3340
+<code class="highlight language-python"><span class="n">collect_messages</span><span class="p">()</span></code>
3341
+
3342
+</h3>
3343
+
3344
+
3345
+ <div class="doc doc-contents ">
3346
+
3347
+ <p>Collects the latest 10 messages from Graylog.</p>
3348
+
3349
+ <p><strong>Returns:</strong></p>
3350
+ <table>
3351
+ <thead>
3352
+ <tr>
3353
+<th>Name</th> <th>Type</th>
3354
+ <th>Description</th>
3355
+ </tr>
3356
+ </thead>
3357
+ <tbody>
3358
+ <tr>
3359
+<td><code>dict</code></td> <td>
3360
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[str, bool, <span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]]]]</code>
3361
+ </td>
3362
+ <td>
3363
+ <div class="doc-md-description">
3364
+ <p>A dictionary containing the success status, a message, and potentially a list of Graylog messages.</p>
3365
+ </div>
3366
+ </td>
3367
+ </tr>
3368
+ </tbody>
3369
+ </table>
3370
+
3371
+ <details class="quote">
3372
+ <summary>Source code in <code>app\services\Graylog\messages.py</code></summary>
3373
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-44">44</a></span>
3374
<span class="normal"><a href="#__codelineno-0-45">45</a></span>
3375
<span class="normal"><a href="#__codelineno-0-46">46</a></span>
3376
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
@@ -3067,12 +3406,7 @@
3406
<span class="normal"><a href="#__codelineno-0-77">77</a></span>
3407
<span class="normal"><a href="#__codelineno-0-78">78</a></span>
3408
<span class="normal"><a href="#__codelineno-0-79">79</a></span>
3070
-<span class="normal"><a href="#__codelineno-0-80">80</a></span></pre>
3071
- </div>
3072
- </td>
3073
- <td class="code">
3074
- <div>
3075
- <pre><span></span><code><a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="k">def</span> <span class="nf">collect_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]]]:</span>
3409
+<span class="normal"><a href="#__codelineno-0-80">80</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="k">def</span> <span class="nf">collect_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]]]:</span>
3410
<a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="w"> </span><span class="sd">"""</span>
3411
<a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="sd"> Collects the latest 10 messages from Graylog.</span>
3412
<a id="__codelineno-0-47" name="__codelineno-0-47"></a>
@@ -3109,50 +3443,91 @@
3443
<a id="__codelineno-0-78" name="__codelineno-0-78"></a> <span class="p">}</span>
3444
<a id="__codelineno-0-79" name="__codelineno-0-79"></a> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
3445
<a id="__codelineno-0-80" name="__codelineno-0-80"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_handle_message_fetch_error</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
3112
-</code></pre>
3113
- </div>
3114
- </td>
3115
- </tr>
3116
- </table>
3117
- </div>
3118
- </details>
3119
- </div>
3120
- </div>
3121
- </div>
3122
- </div>
3123
- </div>
3124
- </div>
3125
- </div>
3126
- </div>
3127
-
3128
- <div class="doc doc-object doc-module">
3129
- <a id="app.services.Graylog.metrics"></a>
3130
- <div class="doc doc-contents first">
3131
- <div class="doc doc-children">
3132
- <div class="doc doc-object doc-class">
3133
- <h2
3134
- id="app.services.Graylog.metrics.MetricsService"
3135
- class="doc doc-heading"
3136
- >
3137
- <code>MetricsService</code>
3138
- </h2>
3139
-
3140
- <div class="doc doc-contents">
3141
- <p>
3142
- A service class that encapsulates the logic for pulling metrics from
3143
- Graylog.
3144
- </p>
3145
-
3146
- <details class="quote">
3147
- <summary>
3148
- Source code in <code>app\services\Graylog\metrics.py</code>
3149
- </summary>
3150
- <div class="highlight">
3151
- <table class="highlighttable">
3152
- <tr>
3153
- <td class="linenos">
3154
- <div class="linenodiv">
3155
- <pre><span></span><span class="normal"><a href="#__codelineno-0-15"> 15</a></span>
3446
+</code></pre></div></td></tr></table></div>
3447
+ </details>
3448
+ </div>
3449
+
3450
+</div>
3451
+
3452
+
3453
+
3454
+ </div>
3455
+
3456
+ </div>
3457
+
3458
+</div>
3459
+
3460
+
3461
+
3462
+
3463
+ </div>
3464
+
3465
+ </div>
3466
+
3467
+</div><h3 id="graylog-services-metrics"><span style="color:red">Graylog Services Metrics</span></h3>
3468
+<h2 id="metricsservice-class">MetricsService Class</h2>
3469
+<p>The <code>metrics.py</code> file defines the <code>MetricsService</code> class, which encapsulates the functionality for interacting with the Graylog metrics system.</p>
3470
+<h3 id="imports_4">Imports</h3>
3471
+<p>The script imports the following modules and services:</p>
3472
+<ul>
3473
+<li><code>requests</code>: A Python library for making HTTP requests.</li>
3474
+<li><code>loguru</code>: A third-party library providing a more convenient and powerful logger for Python.</li>
3475
+<li><code>typing</code>: A standard Python library for supporting type hints.</li>
3476
+<li><code>app.services.Graylog.universal.UniversalService</code>: The <code>UniversalService</code> class from the <code>app.services.Graylog.universal</code> module.</li>
3477
+</ul>
3478
+<h3 id="class-definition-metricsservice">Class Definition: MetricsService</h3>
3479
+<p>The <code>MetricsService</code> class encapsulates the logic for polling metrics from Graylog. It provides the following methods:</p>
3480
+<ul>
3481
+<li><code>__init__</code>: Initializes the <code>MetricsService</code> by collecting Graylog details using <code>UniversalService</code>.</li>
3482
+<li><code>collect_uncommitted_journal_size</code>: Collects the journal size of uncommitted messages from Graylog.</li>
3483
+<li><code>_collect_metrics_uncommitted_journal_size</code>: Fetches the journal size of uncommitted messages from Graylog.</li>
3484
+<li><code>collect_throughput_metrics</code>: Collects various Graylog metrics related to throughput.</li>
3485
+<li><code>_collect_metrics_throughput_usage</code>: Fetches throughput usage from Graylog.</li>
3486
+<li><code>_make_throughput_api_call</code>: Helper method for making the actual API call to retrieve the throughput metrics.</li>
3487
+<li><code>_parse_throughput_metrics</code>: Helper method for parsing the returned throughput metrics.</li>
3488
+</ul>
3489
+<h3 id="error-handling_3">Error Handling</h3>
3490
+<p>The script includes error handling using try/except blocks. When an error occurs, the error message is logged using loguru's <code>logger.error</code> function, and a dictionary with a failure message and success status set to False is returned.</p>
3491
+<p>The <code>MetricsService</code> class follows good practices for encapsulating functionality related to Graylog's metrics system. Each method is well-documented with a docstring that describes its purpose, the arguments it accepts (if any), and what it returns.</p>
3492
+
3493
+
3494
+<div class="doc doc-object doc-module">
3495
+
3496
+
3497
+<a id="app.services.Graylog.metrics"></a>
3498
+ <div class="doc doc-contents first">
3499
+
3500
+
3501
+
3502
+ <div class="doc doc-children">
3503
+
3504
+
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+<div class="doc doc-object doc-class">
3512
+
3513
+
3514
+
3515
+<h2 id="app.services.Graylog.metrics.MetricsService" class="doc doc-heading">
3516
+ <code>MetricsService</code>
3517
+
3518
+
3519
+</h2>
3520
+
3521
+
3522
+ <div class="doc doc-contents ">
3523
+
3524
+
3525
+ <p>A service class that encapsulates the logic for pulling metrics from Graylog.</p>
3526
+
3527
+
3528
+ <details class="quote">
3529
+ <summary>Source code in <code>app\services\Graylog\metrics.py</code></summary>
3530
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-15"> 15</a></span>
3531
<span class="normal"><a href="#__codelineno-0-16"> 16</a></span>
3532
<span class="normal"><a href="#__codelineno-0-17"> 17</a></span>
3533
<span class="normal"><a href="#__codelineno-0-18"> 18</a></span>
@@ -3381,12 +3756,7 @@
3756
<span class="normal"><a href="#__codelineno-0-241">241</a></span>
3757
<span class="normal"><a href="#__codelineno-0-242">242</a></span>
3758
<span class="normal"><a href="#__codelineno-0-243">243</a></span>
3384
-<span class="normal"><a href="#__codelineno-0-244">244</a></span></pre>
3385
- </div>
3386
- </td>
3387
- <td class="code">
3388
- <div>
3389
- <pre><span></span><code><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="k">class</span> <span class="nc">MetricsService</span><span class="p">:</span>
3759
+<span class="normal"><a href="#__codelineno-0-244">244</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="k">class</span> <span class="nc">MetricsService</span><span class="p">:</span>
3760
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="sd">"""</span>
3761
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd"> A service class that encapsulates the logic for pulling metrics from Graylog.</span>
3762
<a id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="sd"> """</span>
@@ -3616,40 +3986,38 @@
3986
<a id="__codelineno-0-242" name="__codelineno-0-242"></a> <span class="s2">"success"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
3987
<a id="__codelineno-0-243" name="__codelineno-0-243"></a> <span class="s2">"throughput_metrics"</span><span class="p">:</span> <span class="n">throughput_metrics_list</span><span class="p">,</span>
3988
<a id="__codelineno-0-244" name="__codelineno-0-244"></a> <span class="p">}</span>
3619
-</code></pre>
3620
- </div>
3621
- </td>
3622
- </tr>
3623
- </table>
3624
- </div>
3625
- </details>
3626
-
3627
- <div class="doc doc-children">
3628
- <div class="doc doc-object doc-function">
3629
- <h3
3630
- id="app.services.Graylog.metrics.MetricsService.__init__"
3631
- class="doc doc-heading"
3632
- >
3633
- <code class="highlight language-python"
3634
- ><span class="fm">__init__</span
3635
- ><span class="p">()</span></code
3636
- >
3637
- </h3>
3638
-
3639
- <div class="doc doc-contents">
3640
- <p>Initializes the MetricsService with Graylog details.</p>
3641
-
3642
- <details class="quote">
3643
- <summary>
3644
- Source code in
3645
- <code>app\services\Graylog\metrics.py</code>
3646
- </summary>
3647
- <div class="highlight">
3648
- <table class="highlighttable">
3649
- <tr>
3650
- <td class="linenos">
3651
- <div class="linenodiv">
3652
- <pre><span></span><span class="normal"><a href="#__codelineno-0-32">32</a></span>
3989
+</code></pre></div></td></tr></table></div>
3990
+ </details>
3991
+
3992
+
3993
+
3994
+ <div class="doc doc-children">
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
4003
+
4004
+<div class="doc doc-object doc-function">
4005
+
4006
+
4007
+
4008
+<h3 id="app.services.Graylog.metrics.MetricsService.__init__" class="doc doc-heading">
4009
+<code class="highlight language-python"><span class="fm">__init__</span><span class="p">()</span></code>
4010
+
4011
+</h3>
4012
+
4013
+
4014
+ <div class="doc doc-contents ">
4015
+
4016
+ <p>Initializes the MetricsService with Graylog details.</p>
4017
+
4018
+ <details class="quote">
4019
+ <summary>Source code in <code>app\services\Graylog\metrics.py</code></summary>
4020
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-32">32</a></span>
4021
<span class="normal"><a href="#__codelineno-0-33">33</a></span>
4022
<span class="normal"><a href="#__codelineno-0-34">34</a></span>
4023
<span class="normal"><a href="#__codelineno-0-35">35</a></span>
@@ -3657,12 +4025,7 @@
4025
<span class="normal"><a href="#__codelineno-0-37">37</a></span>
4026
<span class="normal"><a href="#__codelineno-0-38">38</a></span>
4027
<span class="normal"><a href="#__codelineno-0-39">39</a></span>
3660
-<span class="normal"><a href="#__codelineno-0-40">40</a></span></pre>
3661
- </div>
3662
- </td>
3663
- <td class="code">
3664
- <div>
3665
- <pre><span></span><code><a id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
4028
+<span class="normal"><a href="#__codelineno-0-40">40</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
4029
<a id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="w"> </span><span class="sd">"""</span>
4030
<a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="sd"> Initializes the MetricsService with Graylog details.</span>
4031
<a id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="sd"> """</span>
@@ -3671,83 +4034,58 @@
4034
<a id="__codelineno-0-38" name="__codelineno-0-38"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_username</span><span class="p">,</span>
4035
<a id="__codelineno-0-39" name="__codelineno-0-39"></a> <span class="bp">self</span><span class="o">.</span><span class="n">connector_password</span><span class="p">,</span>
4036
<a id="__codelineno-0-40" name="__codelineno-0-40"></a> <span class="p">)</span> <span class="o">=</span> <span class="n">UniversalService</span><span class="p">()</span><span class="o">.</span><span class="n">collect_graylog_details</span><span class="p">(</span><span class="s2">"Graylog"</span><span class="p">)</span>
3674
-</code></pre>
3675
- </div>
3676
- </td>
3677
- </tr>
3678
- </table>
3679
- </div>
3680
- </details>
3681
- </div>
3682
- </div>
3683
-
3684
- <div class="doc doc-object doc-function">
3685
- <h3
3686
- id="app.services.Graylog.metrics.MetricsService.collect_throughput_metrics"
3687
- class="doc doc-heading"
3688
- >
3689
- <code class="highlight language-python"
3690
- ><span class="n">collect_throughput_metrics</span
3691
- ><span class="p">()</span></code
3692
- >
3693
- </h3>
3694
-
3695
- <div class="doc doc-contents">
3696
- <p>
3697
- Collects the following Graylog Metrics: - Input Usage -
3698
- Output Usage - Processor Usage - Input 1 Seconds Rate -
3699
- Output 1 Seconds Rate - Total Input - Total Output
3700
- </p>
3701
-
3702
- <p><strong>Returns:</strong></p>
3703
- <table>
3704
- <thead>
3705
- <tr>
3706
- <th>Name</th>
3707
- <th>Type</th>
3708
- <th>Description</th>
3709
- </tr>
3710
- </thead>
3711
- <tbody>
3712
- <tr>
3713
- <td><code>dict</code></td>
3714
- <td>
3715
- <code
3716
- ><span title="typing.Dict">Dict</span
3717
- >[str,
3718
- <span title="typing.Union">Union</span
3719
- >[str, bool,
3720
- <span title="typing.List">List</span
3721
- >[<span title="typing.Dict">Dict</span
3722
- >[str,
3723
- <span title="typing.Any">Any</span
3724
- >]]]]</code
3725
- >
3726
- </td>
3727
- <td>
3728
- <div class="doc-md-description">
3729
- <p>
3730
- A dictionary containing the success
3731
- status, a message, and the list of
3732
- throughput metrics.
3733
- </p>
3734
- </div>
3735
- </td>
3736
- </tr>
3737
- </tbody>
3738
- </table>
3739
-
3740
- <details class="quote">
3741
- <summary>
3742
- Source code in
3743
- <code>app\services\Graylog\metrics.py</code>
3744
- </summary>
3745
- <div class="highlight">
3746
- <table class="highlighttable">
3747
- <tr>
3748
- <td class="linenos">
3749
- <div class="linenodiv">
3750
- <pre><span></span><span class="normal"><a href="#__codelineno-0-66">66</a></span>
4037
+</code></pre></div></td></tr></table></div>
4038
+ </details>
4039
+ </div>
4040
+
4041
+</div>
4042
+
4043
+<div class="doc doc-object doc-function">
4044
+
4045
+
4046
+
4047
+<h3 id="app.services.Graylog.metrics.MetricsService.collect_throughput_metrics" class="doc doc-heading">
4048
+<code class="highlight language-python"><span class="n">collect_throughput_metrics</span><span class="p">()</span></code>
4049
+
4050
+</h3>
4051
+
4052
+
4053
+ <div class="doc doc-contents ">
4054
+
4055
+ <p>Collects the following Graylog Metrics:
4056
+- Input Usage
4057
+- Output Usage
4058
+- Processor Usage
4059
+- Input 1 Seconds Rate
4060
+- Output 1 Seconds Rate
4061
+- Total Input
4062
+- Total Output</p>
4063
+
4064
+ <p><strong>Returns:</strong></p>
4065
+ <table>
4066
+ <thead>
4067
+ <tr>
4068
+<th>Name</th> <th>Type</th>
4069
+ <th>Description</th>
4070
+ </tr>
4071
+ </thead>
4072
+ <tbody>
4073
+ <tr>
4074
+<td><code>dict</code></td> <td>
4075
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[str, bool, <span title="typing.List">List</span>[<span title="typing.Dict">Dict</span>[str, <span title="typing.Any">Any</span>]]]]</code>
4076
+ </td>
4077
+ <td>
4078
+ <div class="doc-md-description">
4079
+ <p>A dictionary containing the success status, a message, and the list of throughput metrics.</p>
4080
+ </div>
4081
+ </td>
4082
+ </tr>
4083
+ </tbody>
4084
+ </table>
4085
+
4086
+ <details class="quote">
4087
+ <summary>Source code in <code>app\services\Graylog\metrics.py</code></summary>
4088
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-66">66</a></span>
4089
<span class="normal"><a href="#__codelineno-0-67">67</a></span>
4090
<span class="normal"><a href="#__codelineno-0-68">68</a></span>
4091
<span class="normal"><a href="#__codelineno-0-69">69</a></span>
@@ -3778,12 +4116,7 @@
4116
<span class="normal"><a href="#__codelineno-0-94">94</a></span>
4117
<span class="normal"><a href="#__codelineno-0-95">95</a></span>
4118
<span class="normal"><a href="#__codelineno-0-96">96</a></span>
3781
-<span class="normal"><a href="#__codelineno-0-97">97</a></span></pre>
3782
- </div>
3783
- </td>
3784
- <td class="code">
3785
- <div>
3786
- <pre><span></span><code><a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="k">def</span> <span class="nf">collect_throughput_metrics</span><span class="p">(</span>
4119
+<span class="normal"><a href="#__codelineno-0-97">97</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="k">def</span> <span class="nf">collect_throughput_metrics</span><span class="p">(</span>
4120
<a id="__codelineno-0-67" name="__codelineno-0-67"></a> <span class="bp">self</span><span class="p">,</span>
4121
<a id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]]]:</span>
4122
<a id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="w"> </span><span class="sd">"""</span>
@@ -3815,77 +4148,51 @@
4148
<a id="__codelineno-0-95" name="__codelineno-0-95"></a> <span class="k">if</span> <span class="n">throughput_usage</span><span class="p">[</span><span class="s2">"success"</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
4149
<a id="__codelineno-0-96" name="__codelineno-0-96"></a> <span class="k">return</span> <span class="n">throughput_usage</span>
4150
<a id="__codelineno-0-97" name="__codelineno-0-97"></a> <span class="k">return</span> <span class="n">throughput_usage</span>
3818
-</code></pre>
3819
- </div>
3820
- </td>
3821
- </tr>
3822
- </table>
3823
- </div>
3824
- </details>
3825
- </div>
3826
- </div>
3827
-
3828
- <div class="doc doc-object doc-function">
3829
- <h3
3830
- id="app.services.Graylog.metrics.MetricsService.collect_uncommitted_journal_size"
3831
- class="doc doc-heading"
3832
- >
3833
- <code class="highlight language-python"
3834
- ><span class="n">collect_uncommitted_journal_size</span
3835
- ><span class="p">()</span></code
3836
- >
3837
- </h3>
3838
-
3839
- <div class="doc doc-contents">
3840
- <p>
3841
- Collects the journal size of uncommitted messages from
3842
- Graylog.
3843
- </p>
3844
-
3845
- <p><strong>Returns:</strong></p>
3846
- <table>
3847
- <thead>
3848
- <tr>
3849
- <th>Name</th>
3850
- <th>Type</th>
3851
- <th>Description</th>
3852
- </tr>
3853
- </thead>
3854
- <tbody>
3855
- <tr>
3856
- <td><code>dict</code></td>
3857
- <td>
3858
- <code
3859
- ><span title="typing.Dict">Dict</span
3860
- >[str,
3861
- <span title="typing.Union">Union</span
3862
- >[str, bool, int]]</code
3863
- >
3864
- </td>
3865
- <td>
3866
- <div class="doc-md-description">
3867
- <p>
3868
- A dictionary containing the success
3869
- status, a message, and the size of
3870
- uncommitted journal entries.
3871
- </p>
3872
- </div>
3873
- </td>
3874
- </tr>
3875
- </tbody>
3876
- </table>
3877
-
3878
- <details class="quote">
3879
- <summary>
3880
- Source code in
3881
- <code>app\services\Graylog\metrics.py</code>
3882
- </summary>
3883
- <div class="highlight">
3884
- <table class="highlighttable">
3885
- <tr>
3886
- <td class="linenos">
3887
- <div class="linenodiv">
3888
- <pre><span></span><span class="normal"><a href="#__codelineno-0-42">42</a></span>
4151
+</code></pre></div></td></tr></table></div>
4152
+ </details>
4153
+ </div>
4154
+
4155
+</div>
4156
+
4157
+<div class="doc doc-object doc-function">
4158
+
4159
+
4160
+
4161
+<h3 id="app.services.Graylog.metrics.MetricsService.collect_uncommitted_journal_size" class="doc doc-heading">
4162
+<code class="highlight language-python"><span class="n">collect_uncommitted_journal_size</span><span class="p">()</span></code>
4163
+
4164
+</h3>
4165
+
4166
+
4167
+ <div class="doc doc-contents ">
4168
+
4169
+ <p>Collects the journal size of uncommitted messages from Graylog.</p>
4170
+
4171
+ <p><strong>Returns:</strong></p>
4172
+ <table>
4173
+ <thead>
4174
+ <tr>
4175
+<th>Name</th> <th>Type</th>
4176
+ <th>Description</th>
4177
+ </tr>
4178
+ </thead>
4179
+ <tbody>
4180
+ <tr>
4181
+<td><code>dict</code></td> <td>
4182
+ <code><span title="typing.Dict">Dict</span>[str, <span title="typing.Union">Union</span>[str, bool, int]]</code>
4183
+ </td>
4184
+ <td>
4185
+ <div class="doc-md-description">
4186
+ <p>A dictionary containing the success status, a message, and the size of uncommitted journal entries.</p>
4187
+ </div>
4188
+ </td>
4189
+ </tr>
4190
+ </tbody>
4191
+ </table>
4192
+
4193
+ <details class="quote">
4194
+ <summary>Source code in <code>app\services\Graylog\metrics.py</code></summary>
4195
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-42">42</a></span>
4196
<span class="normal"><a href="#__codelineno-0-43">43</a></span>
4197
<span class="normal"><a href="#__codelineno-0-44">44</a></span>
4198
<span class="normal"><a href="#__codelineno-0-45">45</a></span>
@@ -3907,12 +4214,7 @@
4214
<span class="normal"><a href="#__codelineno-0-61">61</a></span>
4215
<span class="normal"><a href="#__codelineno-0-62">62</a></span>
4216
<span class="normal"><a href="#__codelineno-0-63">63</a></span>
3910
-<span class="normal"><a href="#__codelineno-0-64">64</a></span></pre>
3911
- </div>
3912
- </td>
3913
- <td class="code">
3914
- <div>
3915
- <pre><span></span><code><a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="k">def</span> <span class="nf">collect_uncommitted_journal_size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">]]:</span>
4217
+<span class="normal"><a href="#__codelineno-0-64">64</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="k">def</span> <span class="nf">collect_uncommitted_journal_size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">]]:</span>
4218
<a id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="sd">"""</span>
4219
<a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="sd"> Collects the journal size of uncommitted messages from Graylog.</span>
4220
<a id="__codelineno-0-45" name="__codelineno-0-45"></a>
@@ -3935,50 +4237,67 @@
4237
<a id="__codelineno-0-62" name="__codelineno-0-62"></a> <span class="k">if</span> <span class="n">journal_size</span><span class="p">[</span><span class="s2">"success"</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span>
4238
<a id="__codelineno-0-63" name="__codelineno-0-63"></a> <span class="k">return</span> <span class="n">journal_size</span>
4239
<a id="__codelineno-0-64" name="__codelineno-0-64"></a> <span class="k">return</span> <span class="n">journal_size</span>
3938
-</code></pre>
3939
- </div>
3940
- </td>
3941
- </tr>
3942
- </table>
3943
- </div>
3944
- </details>
3945
- </div>
3946
- </div>
3947
- </div>
3948
- </div>
3949
- </div>
3950
- </div>
3951
- </div>
3952
- </div>
3953
-
3954
- <div class="doc doc-object doc-module">
3955
- <a id="app.services.Graylog.universal"></a>
3956
- <div class="doc doc-contents first">
3957
- <div class="doc doc-children">
3958
- <div class="doc doc-object doc-class">
3959
- <h2
3960
- id="app.services.Graylog.universal.UniversalService"
3961
- class="doc doc-heading"
3962
- >
3963
- <code>UniversalService</code>
3964
- </h2>
3965
-
3966
- <div class="doc doc-contents">
3967
- <p>
3968
- A service class that encapsulates the logic for polling messages
3969
- from Graylog.
3970
- </p>
3971
-
3972
- <details class="quote">
3973
- <summary>
3974
- Source code in <code>app\services\Graylog\universal.py</code>
3975
- </summary>
3976
- <div class="highlight">
3977
- <table class="highlighttable">
3978
- <tr>
3979
- <td class="linenos">
3980
- <div class="linenodiv">
3981
- <pre><span></span><span class="normal"><a href="#__codelineno-0-5"> 5</a></span>
4240
+</code></pre></div></td></tr></table></div>
4241
+ </details>
4242
+ </div>
4243
+
4244
+</div>
4245
+
4246
+
4247
+
4248
+ </div>
4249
+
4250
+ </div>
4251
+
4252
+</div>
4253
+
4254
+
4255
+
4256
+
4257
+ </div>
4258
+
4259
+ </div>
4260
+
4261
+</div><h3 id="graylog-services-universal"><span style="color:red">Graylog Services Universal</span></h3>
4262
+
4263
+
4264
+<div class="doc doc-object doc-module">
4265
+
4266
+
4267
+<a id="app.services.Graylog.universal"></a>
4268
+ <div class="doc doc-contents first">
4269
+
4270
+
4271
+
4272
+ <div class="doc doc-children">
4273
+
4274
+
4275
+
4276
+
4277
+
4278
+
4279
+
4280
+
4281
+<div class="doc doc-object doc-class">
4282
+
4283
+
4284
+
4285
+<h2 id="app.services.Graylog.universal.UniversalService" class="doc doc-heading">
4286
+ <code>UniversalService</code>
4287
+
4288
+
4289
+</h2>
4290
+
4291
+
4292
+ <div class="doc doc-contents ">
4293
+
4294
+
4295
+ <p>A service class that encapsulates the logic for polling messages from Graylog.</p>
4296
+
4297
+
4298
+ <details class="quote">
4299
+ <summary>Source code in <code>app\services\Graylog\universal.py</code></summary>
4300
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-5"> 5</a></span>
4301
<span class="normal"><a href="#__codelineno-0-6"> 6</a></span>
4302
<span class="normal"><a href="#__codelineno-0-7"> 7</a></span>
4303
<span class="normal"><a href="#__codelineno-0-8"> 8</a></span>
@@ -4006,12 +4325,7 @@
4325
<span class="normal"><a href="#__codelineno-0-30">30</a></span>
4326
<span class="normal"><a href="#__codelineno-0-31">31</a></span>
4327
<span class="normal"><a href="#__codelineno-0-32">32</a></span>
4009
-<span class="normal"><a href="#__codelineno-0-33">33</a></span></pre>
4010
- </div>
4011
- </td>
4012
- <td class="code">
4013
- <div>
4014
- <pre><span></span><code><a id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="k">class</span> <span class="nc">UniversalService</span><span class="p">:</span>
4328
+<span class="normal"><a href="#__codelineno-0-33">33</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="k">class</span> <span class="nc">UniversalService</span><span class="p">:</span>
4329
<a id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="w"> </span><span class="sd">"""</span>
4330
<a id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="sd"> A service class that encapsulates the logic for polling messages from Graylog.</span>
4331
<a id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="sd"> """</span>
@@ -4040,99 +4354,88 @@
4354
<a id="__codelineno-0-31" name="__codelineno-0-31"></a> <span class="p">)</span>
4355
<a id="__codelineno-0-32" name="__codelineno-0-32"></a> <span class="k">else</span><span class="p">:</span>
4356
<a id="__codelineno-0-33" name="__codelineno-0-33"></a> <span class="k">return</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span>
4043
-</code></pre>
4044
- </div>
4045
- </td>
4046
- </tr>
4047
- </table>
4048
- </div>
4049
- </details>
4050
-
4051
- <div class="doc doc-children">
4052
- <div class="doc doc-object doc-function">
4053
- <h3
4054
- id="app.services.Graylog.universal.UniversalService.collect_graylog_details"
4055
- class="doc doc-heading"
4056
- >
4057
- <code class="highlight language-python"
4058
- ><span class="n">collect_graylog_details</span
4059
- ><span class="p">(</span
4060
- ><span class="n">connector_name</span
4061
- ><span class="p">)</span></code
4062
- >
4063
- </h3>
4064
-
4065
- <div class="doc doc-contents">
4066
- <p>Collects the details of the Graylog connector.</p>
4067
-
4068
- <p><strong>Parameters:</strong></p>
4069
- <table>
4070
- <thead>
4071
- <tr>
4072
- <th>Name</th>
4073
- <th>Type</th>
4074
- <th>Description</th>
4075
- <th>Default</th>
4076
- </tr>
4077
- </thead>
4078
- <tbody>
4079
- <tr>
4080
- <td><code>connector_name</code></td>
4081
- <td>
4082
- <code>str</code>
4083
- </td>
4084
- <td>
4085
- <div class="doc-md-description">
4086
- <p>
4087
- The name of the Graylog connector.
4088
- </p>
4089
- </div>
4090
- </td>
4091
- <td>
4092
- <em>required</em>
4093
- </td>
4094
- </tr>
4095
- </tbody>
4096
- </table>
4097
-
4098
- <p><strong>Returns:</strong></p>
4099
- <table>
4100
- <thead>
4101
- <tr>
4102
- <th>Name</th>
4103
- <th>Type</th>
4104
- <th>Description</th>
4105
- </tr>
4106
- </thead>
4107
- <tbody>
4108
- <tr>
4109
- <td><code>tuple</code></td>
4110
- <td>
4111
- <code>tuple</code>
4112
- </td>
4113
- <td>
4114
- <div class="doc-md-description">
4115
- <p>
4116
- A tuple containing the connection
4117
- URL, username, and password.
4118
- </p>
4119
- </div>
4120
- </td>
4121
- </tr>
4122
- </tbody>
4123
- </table>
4124
-
4125
- <details class="quote">
4126
- <summary>
4127
- Source code in
4128
- <code>app\services\Graylog\universal.py</code>
4129
- </summary>
4130
- <div class="highlight">
4131
- <table class="highlighttable">
4132
- <tr>
4133
- <td class="linenos">
4134
- <div class="linenodiv">
4135
- <pre><span></span><span class="normal"><a href="#__codelineno-0-13">13</a></span>
This file is too large to show in full.
backend/site/sitemap.xml.gz
Binary files a/backend/site/sitemap.xml.gz and b/backend/site/sitemap.xml.gz differ