blob: c0008f58dc7d16965a1bb578d7a22ca6419945b8 [file] [log] [blame]
Alex Klein6bb06942023-03-13 16:45:16 -06001# Copyright 2023 The ChromiumOS Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Telemetry POC script."""
6
7import argparse
8import time
9from typing import List, Optional
10
11from chromite.lib import commandline
Alex Klein6bb06942023-03-13 16:45:16 -060012from chromite.utils.telemetry import trace
13
14
15def get_parser() -> commandline.ArgumentParser:
16 """Build the argument parser."""
17 parser = commandline.ArgumentParser(description=__doc__)
18
19 parser.add_argument(
20 "-t",
21 "--time",
22 type=int,
23 default=1,
24 help="Seconds to sleep.",
25 )
26
27 return parser
28
29
30def parse_arguments(argv: List) -> argparse.Namespace:
31 """Parse and validate arguments."""
32 parser = get_parser()
33 opts = parser.parse_args(argv)
34
35 opts.Freeze()
36 return opts
37
38
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000039tracer = trace.get_tracer(__name__)
40
41
Alex Klein6bb06942023-03-13 16:45:16 -060042def main(argv: Optional[List[str]]) -> Optional[int]:
43 """Main."""
44 opts = parse_arguments(argv)
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000045 with tracer.start_as_current_span("test") as span:
46 time.sleep(opts.time / 2)
47 span.add_event(name="mid-sleep-event", attributes={"attr": "val"})
48 time.sleep(opts.time / 2)