cabal-version: 2.2
name:          jaeger-flamegraph
version:       1.0.0
license:       BSD-3-Clause
license-file:  LICENSE
copyright:     (c) 2018 Symbiont.io
maintainer:    Sam Halliday
author:        Sam Halliday
tested-with:   ghc ^>=8.4.4 || ^>=8.6.2
bug-reports:   https://github.com/symbiont-io/jaeger-flamegraph/pulls
synopsis:      Generate flamegraphs from Jaeger .json dumps.
description:
    This is a small tool to convert JSON dumps obtained from a Jaeger
    server (<https://www.jaegertracing.io/>) into a format consumable
    by [FlameGraph](https://github.com/brendangregg/FlameGraph).
    .
    First download the traces for your SERVICE limiting to LIMIT traces
    .
    > $ curl http://your-jaeger-installation/api/traces?service=SERVICE&limit=LIMIT > input.json
    .
    using the [undocumented Jaeger API](https://github.com/jaegertracing/jaeger/issues/456#issuecomment-412560321)
    then use @jaeger-flamegraph@ to convert the data and send to @flamegraph.pl@
    .
    > $ jaeger-flamegraph -f input.json | flamegraph.pl > output.svg
    .

category:      Testing

source-repository head
    type:     git
    location: https://github.com/symbiont-io/jaeger-flamegraph

library
    exposed-modules:  Interval
    hs-source-dirs:   library
    default-language: Haskell2010
    ghc-options:      -Wall -Werror=missing-home-modules
    build-depends:
        base ^>=4.11.1.0 || ^>=4.12.0.0,
        QuickCheck ^>=2.12.6.1

executable jaeger-flamegraph
    main-is:          Main.hs
    hs-source-dirs:   exe
    default-language: Haskell2010
    ghc-options:      -Wall -Werror=missing-home-modules -threaded
    build-depends:
        base ^>=4.11.1.0 || ^>=4.12.0.0,
        jaeger-flamegraph -any,
        bytestring ^>=0.10.8.2,
        containers ^>=0.6.0.1,
        extra ^>=1.6.13,
        aeson ^>=1.4.1.0,
        optparse-applicative ^>=0.14.3.0,
        text ^>=1.2.3.1

test-suite tests
    type:               exitcode-stdio-1.0
    main-is:            Driver.hs
    build-tool-depends: tasty-discover:tasty-discover ^>=4.2.1
    hs-source-dirs:     test
    other-modules:      IntervalTest
    default-language:   Haskell2010
    ghc-options:        -Wall -Werror=missing-home-modules -threaded
    build-depends:
        base ^>=4.11.1.0 || ^>=4.12.0.0,
        jaeger-flamegraph -any,
        tasty ^>=1.1.0.4,
        tasty-hspec ^>=1.1.5,
        tasty-quickcheck ^>=0.10
