blob: 559ceb03f9102ac9fcbd6641e6923f7b8b37ec92 [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
Anuj Jamwal5fe14392023-05-01 14:26:02 +000012from chromite.utils import telemetry
Alex Klein6bb06942023-03-13 16:45:16 -060013from chromite.utils.telemetry import trace
14
15
Anuj Jamwal5fe14392023-05-01 14:26:02 +000016telemetry.initialize()
17
18
Alex Klein6bb06942023-03-13 16:45:16 -060019def get_parser() -> commandline.ArgumentParser:
20 """Build the argument parser."""
21 parser = commandline.ArgumentParser(description=__doc__)
22
23 parser.add_argument(
24 "-t",
25 "--time",
26 type=int,
27 default=1,
28 help="Seconds to sleep.",
29 )
30
31 return parser
32
33
34def parse_arguments(argv: List) -> argparse.Namespace:
35 """Parse and validate arguments."""
36 parser = get_parser()
37 opts = parser.parse_args(argv)
38
39 opts.Freeze()
40 return opts
41
42
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000043tracer = trace.get_tracer(__name__)
44
45
Alex Klein6bb06942023-03-13 16:45:16 -060046def main(argv: Optional[List[str]]) -> Optional[int]:
47 """Main."""
48 opts = parse_arguments(argv)
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000049 with tracer.start_as_current_span("test") as span:
50 time.sleep(opts.time / 2)
51 span.add_event(name="mid-sleep-event", attributes={"attr": "val"})
52 time.sleep(opts.time / 2)