| #!/usr/bin/env python3 |
| # Copyright 2018 - The Android Open Source Project |
| # |
| # 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. |
| |
| """AIDEgen metrics functions.""" |
| |
| import logging |
| import os |
| import platform |
| import sys |
| |
| from aidegen import constant |
| from atest import atest_utils |
| |
| try: |
| from asuite.metrics import metrics |
| from asuite.metrics import metrics_base |
| from asuite.metrics import metrics_utils |
| except ImportError: |
| logging.debug('Import metrics fail, can\'t send metrics') |
| metrics = None |
| metrics_base = None |
| metrics_utils = None |
| |
| |
| def starts_asuite_metrics(references=None): |
| """Starts to record metrics data. |
| |
| Send a metrics data to log server at the same time. |
| |
| Args: |
| references: a list of reference data, when importing whole Android |
| it contains 'is_android_tree'. |
| """ |
| if not metrics: |
| return |
| atest_utils.print_data_collection_notice() |
| metrics_base.MetricsBase.tool_name = constant.AIDEGEN_TOOL_NAME |
| metrics_utils.get_start_time() |
| command = ' '.join(sys.argv) |
| metrics.AtestStartEvent( |
| command_line=command, |
| test_references=references, |
| cwd=os.getcwd(), |
| os=platform.platform()) |
| |
| |
| def ends_asuite_metrics(exit_code, stacktrace='', logs=''): |
| """Send the end event to log server. |
| |
| Args: |
| exit_code: An integer of exit code. |
| stacktrace: A string of stacktrace. |
| logs: A string of logs. |
| """ |
| if not metrics_utils: |
| return |
| metrics_utils.send_exit_event( |
| exit_code, |
| stacktrace=stacktrace, |
| logs=logs) |