Skip to content
Snippets Groups Projects
send_task.py 1.67 KiB
Newer Older
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())