Tezt_cloud.Cloudval set_faketime : Agent.t -> string -> unit Lwt.tval register :
?proxy_files:string list ->
?proxy_args:string list ->
?vms:(unit -> Agent.Configuration.t list Lwt.t) ->
?dockerbuild_args:(string * string) list ->
__FILE__:string ->
title:string ->
tags:string list ->
?seed:Tezt.Test.seed ->
?alerts:Alert.t list ->
?tasks:Chronos.task list ->
(t -> unit Lwt.t) ->
unitA wrapper around Test.register that can be used to register new tests using VMs provided as a map indexed by name. Each VM is abstracted via the Agent module.
proxy_files should contains file that are needed by the scenario to run (only used for proxy mode).
proxy_args should contains CLI arguments necessary for the proxy mode. This can be used for example when an argument is provided via an environment variable instead of a command-line argument.
tasks represent Chronos tasks that will be registered in a Chronos.t process. If tasks is empty, no Chronos process will be started.
val push_metric :
t ->
?help:string ->
?typ:[ `Counter | `Gauge ] ->
?labels:(string * string) list ->
name:string ->
float ->
unitpush_metric t ?help ?typ ?labels ~name v pushes the value v for metric on Prometheus. labels can be used to categorise the metric (each set of label define a single curve). typ can be used to provide the type of the metric. help can be used to provide some naive documentation about the metrics.
add_prometheus_source t ?metrics_path ~name targets allows to add a new source of metrics that Prometheus can scrap. By default metric_path is /metrics. job_name is just the name to give for the job that will scrap the metrics. It must be unique. A target enables to define a list of points to scrap. Each point can have a name defined by app_name.
val add_service : t -> name:string -> url:string -> unit Lwt.tval open_telemetry_endpoint : t -> string optionval register_binary :
t ->
?agents:Agent.t list ->
?group:string ->
name:string ->
unit ->
unit Lwt.tregister_binary t ?agents ?group name register a binary for individual process monitoring via prometheus process exporter. group will allow to put process in process groups, is currently not used. defaults to "tezt-cloud" if not specified name is the filename of the executable to monitor. agents when specified, is the list of agents on which to enable monitoring when not specified, all container agents will run a prometheus process exporter
val service_register :
name:string ->
executable:string ->
?on_alive_callback:(alive:bool -> unit) ->
on_shutdown:(unit -> unit Lwt.t) list ->
Agent.t ->
unitservice_register: name executable on_alive_callback on_shutdowan agent register a service, ie, a long running background process, that we want to monitor for launch and crash. name is a unique name to identify the service. on_alive_callback is a callback whose argument is a boolean which represent the service started if true, or the service was shutdown if false. This callback is called regularly, and expects to be update some metrics. on_shutdown is a list of callbacks that will be called as soon as the shutdown of a service will be triggered. TODO: change arguments executable and pid to a abstraction for tezt Daemon.t and merge register_binary functionality into register_service
notify_service_start: name notify the start of a service
notify_service_stop: name notify the normal termination of a service
val register_chronos_task : t -> Chronos.task -> unitRegister a chronos task
val notifier : t -> Types.notifierReturns the Types.notifier