Skip to content

MetricPolling

10 exports Added in v2.0.0 Source

Constructors

collectAll

Added in v2.0.0 Source

Collects all of the polling metrics into a single polling metric, which polls for, updates, and produces the outputs of all individual metrics.

Signature

declare const collectAll: <R, E, Out>(
  iterable: Iterable<MetricPolling<any, any, R, E, Out>>,
) => MetricPolling<Array<any>, Array<any>, R, E, Array<Out>>;

make

Added in v2.0.0 Source

Constructs a new polling metric from a metric and poll effect.

Signature

declare const make: <Type, In, Out, R, E>(
  metric: Metric.Metric<Type, In, Out>,
  poll: Effect.Effect<In, E, R>,
) => MetricPolling<Type, In, R, E, Out>;

retry

Added in v2.0.0 Source

Returns a new polling metric whose poll function will be retried with the specified retry policy.

Signature

declare const retry: {
  <X, E, R2>(
    policy: Schedule<X, NoInfer<E>, R2>,
  ): <Type, In, R, Out>(
    self: MetricPolling<Type, In, R, E, Out>,
  ) => MetricPolling<Type, In, R2 | R, E, Out>;
  <Type, In, R, E, Out, X, R2>(
    self: MetricPolling<Type, In, R, E, Out>,
    policy: Schedule<X, E, R2>,
  ): MetricPolling<Type, In, R | R2, E, Out>;
};

Models

MetricPolling interface

Added in v2.0.0 Source

A MetricPolling is a combination of a metric and an effect that polls for updates to the metric.

Signature

interface MetricPolling<in out Type, in out In, out R, out E, out Out> extends Pipeable {
  readonly [MetricPollingTypeId]: typeof MetricPollingTypeId;
  readonly metric: Metric<Type, In, Out>;
  readonly poll: Effect<In, E, R>;
}

Symbols

Signature

declare const MetricPollingTypeId: unique symbol;

MetricPollingTypeId type

Added in v2.0.0 Source

Signature

type MetricPollingTypeId = typeof MetricPollingTypeId;

Utils

launch

Added in v2.0.0 Source

Returns an effect that will launch the polling metric in a background fiber, using the specified schedule.

Signature

declare const launch: {
  <A2, R2>(
    schedule: Schedule<A2, unknown, R2>,
  ): <Type, In, R, E, Out>(
    self: MetricPolling<Type, In, R, E, Out>,
  ) => Effect<Fiber<A2, E>, never, Scope | R2 | R>;
  <Type, In, R, E, Out, A2, R2>(
    self: MetricPolling<Type, In, R, E, Out>,
    schedule: Schedule<A2, unknown, R2>,
  ): Effect<Fiber<A2, E>, never, Scope | R | R2>;
};

poll

Added in v2.0.0 Source

An effect that polls a value that may be fed to the metric.

Signature

declare const poll: <Type, In, R, E, Out>(
  self: MetricPolling<Type, In, R, E, Out>,
) => Effect.Effect<In, E, R>;

An effect that polls for a value and uses the value to update the metric.

Signature

declare const pollAndUpdate: <Type, In, R, E, Out>(
  self: MetricPolling<Type, In, R, E, Out>,
) => Effect.Effect<void, E, R>;

zip

Added in v2.0.0 Source

Zips this polling metric with the specified polling metric.

Signature

declare const zip: {
  <Type2, In2, R2, E2, Out2>(
    that: MetricPolling<Type2, In2, R2, E2, Out2>,
  ): <Type, In, R, E, Out>(
    self: MetricPolling<Type, In, R, E, Out>,
  ) => MetricPolling<readonly [Type, Type2], readonly [In, In2], R2 | R, E2 | E, [Out, Out2]>;
  <Type, In, R, E, Out, Type2, In2, R2, E2, Out2>(
    self: MetricPolling<Type, In, R, E, Out>,
    that: MetricPolling<Type2, In2, R2, E2, Out2>,
  ): MetricPolling<readonly [Type, Type2], readonly [In, In2], R | R2, E | E2, [Out, Out2]>;
};