diff --git a/src/monitoring/Dockerfile b/src/monitoring/Dockerfile index b7efbf951571688ff8be069bf0a1b0942f71c24f..bbdb55b486bf4416ccc3ab93f5590d25001c8c06 100644 --- a/src/monitoring/Dockerfile +++ b/src/monitoring/Dockerfile @@ -1,5 +1,6 @@ FROM python:3-slim +# Install dependencies RUN apt-get --yes --quiet --quiet update && \ apt-get --yes --quiet --quiet install wget g++ && \ rm -rf /var/lib/apt/lists/* @@ -12,16 +13,24 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ chmod +x /bin/grpc_health_probe -# get packages -WORKDIR /var/monitoring +# Get generic Python packages RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools + +# get packages +WORKDIR /var/teraflow + +# Create module sub-folders +RUN mkdir -p /var/teraflow/monitoring +RUN mkdir -p /var/teraflow/common + +# Get Python packages per module COPY monitoring/requirements.in requirements.in RUN pip-compile --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt # add files into working directory -COPY monitoring/. . -COPY common/logger.py . +COPY monitoring/. monitoring +COPY common/logger.py common # set listen port ENV PORT=7070 diff --git a/src/monitoring/client/monitoring_client.py b/src/monitoring/client/monitoring_client.py index b2e029f4c80f3262ae31d6c48de86cff9ee8a90a..ff16c0c37b2af1ec5bcdd84ad22ead8b1d020d67 100644 --- a/src/monitoring/client/monitoring_client.py +++ b/src/monitoring/client/monitoring_client.py @@ -1,11 +1,11 @@ import sys import grpc -from ..proto import monitoring_pb2 -from ..proto import monitoring_pb2_grpc -from ..proto import context_pb2 +from monitoring.proto import monitoring_pb2 +from monitoring.proto import monitoring_pb2_grpc +from monitoring.proto import context_pb2 -from ..logger import getJSONLogger +from common.logger import getJSONLogger LOGGER = getJSONLogger('monitoring-client') LOGGER.setLevel('DEBUG') diff --git a/src/monitoring/logger.py b/src/monitoring/logger.py deleted file mode 120000 index 2bc8d96dc00be149ec7d1b6e8144692fe56946f6..0000000000000000000000000000000000000000 --- a/src/monitoring/logger.py +++ /dev/null @@ -1 +0,0 @@ -../common/logger.py \ No newline at end of file diff --git a/src/monitoring/requirements.in b/src/monitoring/requirements.in index 5ceb7ff5aecd5c253862c86991ffebad28558d36..040bafcc2dcf3d9fa89bd0b538f0e85dd9dbe604 100644 --- a/src/monitoring/requirements.in +++ b/src/monitoring/requirements.in @@ -1,5 +1,4 @@ google-api-core -google-python-cloud-debugger grpcio-health-checking grpcio opencensus[stackdriver] diff --git a/src/monitoring/service/monitoring_server.py b/src/monitoring/service/monitoring_server.py index 998498231b1c9f01636cca2d63dc79528731b8b8..8c62a365eab7268d7f982c294e1aad9bbd9257fa 100644 --- a/src/monitoring/service/monitoring_server.py +++ b/src/monitoring/service/monitoring_server.py @@ -3,23 +3,23 @@ import os from concurrent import futures -from ..client.monitoring_client import MonitoringClient -from ..proto import context_pb2 +from monitoring.client.monitoring_client import MonitoringClient +from monitoring.proto import context_pb2 import grpc -from . import sqlite_tools as sqltools -# from . import influx_tools +from monitoring.service import sqlite_tools +# from monitoring.service import influx_tools import time -from ..proto import monitoring_pb2 -from ..proto import monitoring_pb2_grpc +from monitoring.proto import monitoring_pb2 +from monitoring.proto import monitoring_pb2_grpc from grpc_health.v1 import health from grpc_health.v1 import health_pb2 from grpc_health.v1 import health_pb2_grpc -from ..logger import getJSONLogger +from common.logger import getJSONLogger LOGGER = getJSONLogger('monitoringservice-server') LOGGER.setLevel('DEBUG') @@ -37,7 +37,7 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService def __init__(self): LOGGER.info('Init monitoringService') # Init sqlite monitoring db - self.sql_db = sqltools.SQLite('monitoring.db') + self.sql_db = sqlite_tools.SQLite('monitoring.db') # Create influx_db client # self.influx_db = influx_tools.Influx("host",port,"user","pass","database") @@ -71,8 +71,8 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService monitor_device_request.connexion_time_s = request.connexion_time_s monitor_device_request.sample_rate_ms = request.sample_rate_ms - client = MonitoringClient(server=SERVER_ADDRESS, port=PORT) - client.MonitorDeviceKpi(monitor_device_request) + # client = MonitoringClient(server=SERVER_ADDRESS, port=PORT) + self.MonitorDeviceKpi(monitor_device_request,context) return context_pb2.Empty() diff --git a/src/monitoring/tests/test_monitoring.py b/src/monitoring/tests/test_monitoring.py index cb16ab384477572757d9508f2eac9e2908bd768f..5b93ad17c13c6eb2f723a512ff7cfbdd408032d7 100644 --- a/src/monitoring/tests/test_monitoring.py +++ b/src/monitoring/tests/test_monitoring.py @@ -1,10 +1,10 @@ import logging import pytest -from ..proto import context_pb2 -from ..proto import monitoring_pb2 -from ..client.monitoring_client import MonitoringClient -from ..service.monitoring_server import start_server, stop_server +from monitoring.proto import context_pb2 +from monitoring.proto import monitoring_pb2 +from monitoring.client.monitoring_client import MonitoringClient +from monitoring.service.monitoring_server import start_server, stop_server # from src.monitoring.tests.test_monitoring import kpi_request LOGGER = logging.getLogger(__name__)