Skip to content
GitLab
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
TFS
controller
Compare revisions
a39e8f074701d1d79af7fc71e593ca71da39d6d2...e03a7344575d87aeaa234ada771d15205552e6b1
Commits (5)
Metric pool sub-module name changed from "RPC" to "KpiManager"
· faeed6d7
Waleed Akbar
authored
Apr 25, 2024
faeed6d7
"__init__.py" file added in TelemeteryFrontend sub-directories
· c8b75826
Waleed Akbar
authored
Apr 25, 2024
c8b75826
"StartCollector" method dummy defination added
· dd0f90fa
Waleed Akbar
authored
Apr 25, 2024
dd0f90fa
method to test "collectorId" message is added
· d66e79c3
Waleed Akbar
authored
Apr 25, 2024
d66e79c3
__main__.py function is added in TelemetryFrontend directory
· e03a7344
Waleed Akbar
authored
Apr 25, 2024
e03a7344
Hide whitespace changes
Inline
Side-by-side
src/kpi_manager/service/KpiManagerServiceServicerImpl.py
View file @
e03a7344
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
# do tests to verify the "grpc.ServicerContext" is required or not.
import
logging
,
grpc
import
logging
,
grpc
from
common.method_wrappers.Decorator
import
MetricsPool
,
safe_and_metered_rpc_method
from
common.method_wrappers.Decorator
import
MetricsPool
,
safe_and_metered_rpc_method
from
common.proto.context_pb2
import
Empty
from
common.proto.context_pb2
import
Empty
...
@@ -23,7 +24,7 @@ from monitoring.service import ManagementDBTools
...
@@ -23,7 +24,7 @@ from monitoring.service import ManagementDBTools
LOGGER
=
logging
.
getLogger
(
__name__
)
LOGGER
=
logging
.
getLogger
(
__name__
)
METRICS_POOL
=
MetricsPool
(
'Monitoring'
,
'
RPC
'
)
METRICS_POOL
=
MetricsPool
(
'Monitoring'
,
'
KpiManager
'
)
class
KpiManagerServiceServicerImpl
(
KpiManagerServiceServicer
):
class
KpiManagerServiceServicerImpl
(
KpiManagerServiceServicer
):
def
__init__
(
self
,
name_mapping
:
NameMapping
):
def
__init__
(
self
,
name_mapping
:
NameMapping
):
...
@@ -36,7 +37,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer):
...
@@ -36,7 +37,7 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer):
@safe_and_metered_rpc_method
(
METRICS_POOL
,
LOGGER
)
@safe_and_metered_rpc_method
(
METRICS_POOL
,
LOGGER
)
def
SetKpiDescriptor
(
def
SetKpiDescriptor
(
self
,
request
:
KpiDescriptor
,
grpc_context
:
grpc
.
ServicerContext
self
,
request
:
KpiDescriptor
,
grpc_context
:
grpc
.
ServicerContext
)
->
KpiId
:
)
->
KpiId
:
response
=
KpiId
()
response
=
KpiId
()
kpi_description
=
request
.
kpi_description
kpi_description
=
request
.
kpi_description
kpi_sample_type
=
request
.
kpi_sample_type
kpi_sample_type
=
request
.
kpi_sample_type
...
...
src/telemetry_frontend/service/TelemetryFrontendServiceServicerImpl.py
View file @
e03a7344
...
@@ -10,4 +10,29 @@
...
@@ -10,4 +10,29 @@
# distributed under the License is distributed on an "AS IS" BASIS,
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
\ No newline at end of file
import
logging
from
monitoring.service.NameMapping
import
NameMapping
from
common.proto.telemetry_frontend_pb2
import
CollectorId
,
Collector
from
common.method_wrappers.Decorator
import
MetricsPool
,
safe_and_metered_rpc_method
from
common.proto.telemetry_frontend_pb2_grpc
import
TelemetryFrontendServiceServicer
LOGGER
=
logging
.
getLogger
(
__name__
)
METRICS_POOL
=
MetricsPool
(
'Monitoring'
,
'TelemetryFrontend'
)
class
TelemetryFrontendServiceServicerImpl
(
TelemetryFrontendServiceServicer
):
def
__init__
(
self
,
name_mapping
:
NameMapping
):
LOGGER
.
info
(
'Init TelemetryFrontendService'
)
@safe_and_metered_rpc_method
(
METRICS_POOL
,
LOGGER
)
def
StartCollector
(
self
,
request
:
Collector
)
->
CollectorId
:
response
=
CollectorId
()
collector_id
=
request
.
collector_id
collector_kpi_id
=
request
.
kpi_id
collector_duration
=
request
.
duration_s
collector_interval
=
request
.
interval_s
response
.
collector_id
.
uuid
=
request
.
collector_id
.
uuid
return
response
\ No newline at end of file
src/telemetry_frontend/service/__init__.py
View file @
e03a7344
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
src/telemetry_frontend/service/__main__.py
0 → 100644
View file @
e03a7344
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
logging
,
threading
from
.TelemetryFrontendService
import
TelemetryFrontendService
from
monitoring.service.NameMapping
import
NameMapping
from
monitoring.service.EventTools
import
EventsDeviceCollector
from
common.Settings
import
(
get_log_level
,
wait_for_environment_variables
,
get_env_var_name
,
get_metrics_port
)
terminate
=
threading
.
Event
()
LOGGER
=
None
def
signal_handler
(
signal
,
frame
):
# pylint: disable=redefined-outer-name
LOGGER
.
warning
(
'Terminate signal received'
)
terminate
.
set
()
def
main
():
global
LOGGER
log_level
=
get_log_level
()
logging
.
basicConfig
(
level
=
log_level
,
format
=
"[%(asctime)s] %(levelname)s:%(name)s:%(message)s"
)
LOGGER
=
logging
.
getLogger
(
__name__
)
# ------- will be added later --------------
# wait_for_environment_variables([
# get_env_var_name
# ])
# ------- will be added later --------------
signal
.
signal
(
signal
.
SIGINT
,
signal_handler
)
signal
.
signal
(
signal
.
SIGTERM
,
signal_handler
)
LOGGER
.
info
(
'Starting...'
)
# Start metrics server
metrics_port
=
get_metrics_port
()
start_http_server
(
metrics_port
)
name_mapping
=
NameMapping
()
grpc_service
=
TelemetryFrontendService
(
name_mapping
)
grpc_service
.
start
()
# Wait for Ctrl+C or termination signal
while
not
terminate
.
wait
(
timeout
=
1.0
):
pass
LOGGER
.
info
(
'Terminating...'
)
grpc_service
.
stop
()
LOGGER
.
info
(
'Bye'
)
return
0
if
__name__
==
'__main__'
:
sys
.
exit
(
main
())
\ No newline at end of file
src/telemetry_frontend/tests/__init__.py
0 → 100644
View file @
e03a7344
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
src/telemetry_frontend/tests/test_mesages.py
0 → 100644
View file @
e03a7344
# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from
common.proto
import
telemetry_frontend_pb2
# from common.proto.kpi_manager_pb2 import kpi_id
# from common.proto.kpi_sample_types_pb2 import KpiSampleType
def
collector_id
():
_collector_id
=
telemetry_frontend_pb2
.
CollectorId
()
_collector_id
.
collector_id
.
uuid
=
str
(
1
)
return
_collector_id
\ No newline at end of file