blob: 82b0cc42419abe74ba6839fd0f93fddee7ae426a [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
Anuj Jamwal36a607e2023-05-02 16:45:21 +000011from opentelemetry import trace
12
Alex Klein6bb06942023-03-13 16:45:16 -060013from chromite.lib import commandline
Anuj Jamwal5fe14392023-05-01 14:26:02 +000014from chromite.utils import telemetry
Alex Klein6bb06942023-03-13 16:45:16 -060015
16
Anuj Jamwal5fe14392023-05-01 14:26:02 +000017telemetry.initialize()
18
19
Alex Klein6bb06942023-03-13 16:45:16 -060020def get_parser() -> commandline.ArgumentParser:
21 """Build the argument parser."""
22 parser = commandline.ArgumentParser(description=__doc__)
23
24 parser.add_argument(
25 "-t",
26 "--time",
27 type=int,
28 default=1,
29 help="Seconds to sleep.",
30 )
31
32 return parser
33
34
35def parse_arguments(argv: List) -> argparse.Namespace:
36 """Parse and validate arguments."""
37 parser = get_parser()
38 opts = parser.parse_args(argv)
39
40 opts.Freeze()
41 return opts
42
43
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000044tracer = trace.get_tracer(__name__)
45
46
Alex Klein6bb06942023-03-13 16:45:16 -060047def main(argv: Optional[List[str]]) -> Optional[int]:
48 """Main."""
49 opts = parse_arguments(argv)
Anuj Jamwal84d66ed2023-04-14 17:41:59 +000050 with tracer.start_as_current_span("test") as span:
51 time.sleep(opts.time / 2)
52 span.add_event(name="mid-sleep-event", attributes={"attr": "val"})
53 time.sleep(opts.time / 2)