packages feed

shibuya-metrics-0.10.0.0: shibuya-metrics.cabal

cabal-version: 3.12
name: shibuya-metrics
version: 0.10.0.0
synopsis: Metrics web server for Shibuya queue processing framework
description:
  Provides HTTP/JSON, Prometheus, and WebSocket endpoints for
  exposing Shibuya processor metrics.

author: Nadeem Bitar
maintainer: nadeem@gmail.com
license: MIT
build-type: Simple
category: Concurrency
extra-doc-files: CHANGELOG.md
data-files: test/golden/*.golden

common warnings
  ghc-options: -Wall

library
  import: warnings
  exposed-modules:
    Shibuya.Metrics
    Shibuya.Metrics.Config
    Shibuya.Metrics.Health
    Shibuya.Metrics.JSON
    Shibuya.Metrics.Prometheus
    Shibuya.Metrics.Server
    Shibuya.Metrics.Types
    Shibuya.Metrics.WebSocket

  default-extensions:
    DeriveAnyClass
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    NoFieldSelectors
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    QuasiQuotes
    RecordWildCards

  build-depends:
    aeson ^>=2.2,
    async ^>=2.2,
    base ^>=4.21.0.0,
    bytestring ^>=0.12,
    containers ^>=0.7,
    http-types ^>=0.12,
    prometheus-client ^>=1.1,
    shibuya-core ^>=0.10.0.0,
    stm ^>=2.5,
    text ^>=2.1,
    time ^>=1.14,
    wai ^>=3.2,
    wai-websockets ^>=3.0,
    warp ^>=3.4,
    websockets ^>=0.13,

  hs-source-dirs: src
  default-language: GHC2024

test-suite shibuya-metrics-test
  import: warnings
  default-language: GHC2024
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  default-extensions:
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    NoFieldSelectors
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings

  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N2

  other-modules:
    Paths_shibuya_metrics
    Shibuya.Metrics.HealthSpec
    Shibuya.Metrics.JSONSpec
    Shibuya.Metrics.PrometheusSpec
    Shibuya.Metrics.ServerSpec
    Shibuya.Metrics.TestSupport
    Shibuya.Metrics.TypesSpec
    Shibuya.Metrics.WebSocketSpec

  autogen-modules:
    Paths_shibuya_metrics

  build-depends:
    aeson,
    async,
    atomic-primops,
    base ^>=4.21.0.0,
    bytestring,
    containers,
    effectful >=2.6.1 && <2.8,
    hspec ^>=2.11.17,
    http-types,
    nqe ^>=0.6,
    shibuya-core,
    shibuya-metrics,
    stm,
    text,
    time,
    wai,
    wai-extra ^>=3.1.18,
    warp,
    websockets,

-- EP-45 real-wire HTTP health polling and WebSocket churn fixture.
executable metrics-wire-load
  import: warnings
  default-language: GHC2024
  hs-source-dirs: bench
  main-is: WireLoad.hs
  default-extensions:
    DeriveAnyClass
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings

  ghc-options:
    -threaded
    -rtsopts
    "-with-rtsopts=-N4 -T -A32m"
    -O2

  build-depends:
    aeson,
    base ^>=4.21.0.0,
    bytestring,
    effectful >=2.6.1 && <2.8,
    http-client ^>=0.7.19,
    http-types,
    nqe ^>=0.6,
    shibuya-core,
    shibuya-metrics,
    stm,
    time,
    warp,
    websockets,