1 # ==================================================================================
2 # Copyright (c) 2019 Nokia
3 # Copyright (c) 2018-2019 AT&T Intellectual Property.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 # ==================================================================================
18 contains the app; broken out here for ease of unit testing
21 from prometheus_client import CollectorRegistry, generate_latest, multiprocess
24 app = connexion.App(__name__, specification_dir=".")
25 app.add_api("openapi.yaml", arguments={"title": "My Title"})
28 # python decorators feel like black magic to me
29 @app.app.route('/a1-p/metrics', methods=['GET'])
30 def metrics(): # pylint: disable=unused-variable
31 # /metrics API shouldn't be visible in the API documentation,
32 # hence it's added here in the create_app step
33 # requires environment variable prometheus_multiproc_dir
34 registry = CollectorRegistry()
35 multiprocess.MultiProcessCollector(registry)
36 return generate_latest(registry)