CodeNameRaven.Protocol.Http (raven_observer_sdk v0.5.4)

Copy Markdown

A standalone, low-level HTTP profiler using Mint and :ssl to measure connection phases (DNS, TCP, SSL handshakes, TTFB, and download times) and retrieve SSL certificate details.

Summary

Types

result()

@type result() :: %{
  status: non_neg_integer(),
  headers: [{String.t(), String.t()}],
  body: String.t(),
  timing: timing(),
  cert_expiry_at: DateTime.t() | nil,
  redirects: non_neg_integer()
}

timing()

@type timing() :: %{
  dns_ms: non_neg_integer() | nil,
  tcp_ms: non_neg_integer() | nil,
  ssl_ms: non_neg_integer() | nil,
  ttfb_ms: non_neg_integer() | nil,
  download_ms: non_neg_integer() | nil,
  total_ms: non_neg_integer()
}

Functions

otp_certificate(args \\ [])

(macro)

otp_certificate(record, args)

(macro)

otp_tbs_certificate(args \\ [])

(macro)

otp_tbs_certificate(record, args)

(macro)

otp_validity(args \\ [])

(macro)

otp_validity(record, args)

(macro)

request(method, url, opts \\ [])

@spec request(atom() | String.t(), String.t(), keyword()) ::
  {:ok, result()} | {:error, String.t()}

Performs an HTTP request and returns connection metrics and certificate details.