Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from celery import Celery
import random
from common.Settings import get_log_level, get_metrics_port, get_setting
from common.proto.dbscanserving_pb2 import DetectionRequest, DetectionResponse, Sample
from dbscanserving.client.DbscanServingClient import DbscanServingClient
dbscanserving_client: DbscanServingClient = DbscanServingClient()
alien_samples = random.randint(2, 20)
request: DetectionRequest = DetectionRequest()
request.num_samples = 300 + alien_samples
request.num_features = 20
request.eps = 100.5
request.min_samples = 5
for _ in range(200):
grpc_sample = Sample()
for __ in range(20):
grpc_sample.features.append(random.uniform(0., 10.))
request.samples.append(grpc_sample)
for _ in range(100):
grpc_sample = Sample()
for __ in range(20):
grpc_sample.features.append(random.uniform(50., 60.))
request.samples.append(grpc_sample)
for _ in range(alien_samples):
grpc_sample = Sample()
for __ in range(20):
grpc_sample.features.append(random.uniform(5000., 6000.))
request.samples.append(grpc_sample)
response: DetectionResponse = dbscanserving_client.Detect(request)
REDIS_PASSWORD = get_setting('REDIS_PASSWORD')
REDIS_HOST = get_setting('CACHINGSERVICE_SERVICE_HOST')
REDIS_PORT = get_setting('CACHINGSERVICE_SERVICE_PORT')
BROKER_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0'
app = Celery(
'cybersecurity',
broker=BROKER_URL,
backend=BROKER_URL
)
service = {'context': 'admin', 'service': '23bb5c96-e377-4943-a47a-4db9c54104cc', 'kpi': '1'}
result = app.send_task('detect_attack', (service['context'], service['service'], service['kpi']))
print('waiting for result...')
print('Result:', result.get())