| # Copyright 2023 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Telemetry POC script.""" |
| |
| import argparse |
| import time |
| from typing import List, Optional |
| |
| from chromite.lib import commandline |
| from chromite.lib import telemetry |
| from chromite.lib.telemetry import trace |
| |
| |
| tracer = trace.get_tracer(__name__) |
| |
| |
| def get_parser() -> commandline.ArgumentParser: |
| """Build the argument parser.""" |
| parser = commandline.ArgumentParser(description=__doc__) |
| |
| parser.add_argument( |
| "-t", |
| "--time", |
| type=int, |
| default=1, |
| help="Seconds to sleep.", |
| ) |
| |
| return parser |
| |
| |
| def parse_arguments(argv: List) -> argparse.Namespace: |
| """Parse and validate arguments.""" |
| parser = get_parser() |
| opts = parser.parse_args(argv) |
| |
| opts.Freeze() |
| return opts |
| |
| |
| def main(argv: Optional[List[str]]) -> Optional[int]: |
| """Main.""" |
| opts = parse_arguments(argv) |
| |
| telemetry.initialize() |
| |
| with tracer.start_as_current_span("telemetry_poc.main") as span: |
| time.sleep(opts.time / 2) |
| span.add_event(name="mid-sleep-event", attributes={"attr": "val"}) |
| time.sleep(opts.time / 2) |