Copyright | (c) Hardy Jones 2017 |
---|---|
License | BSD3 |
Maintainer | jones3.hardy@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Provides a data type that subsumes most of what Rollbar expects for "item"s.
See Rollbar's Data Format for more details.
- debug :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers)
- info :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers)
- warning :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers)
- error :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers)
- critical :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers)
- data Item a headers = Item {
- accessToken :: AccessToken
- itemData :: Data a headers
- module Rollbar.AccessToken
- newtype AccessToken = AccessToken Text
- module Rollbar.Item.Data
- data Data body headers = Data {
- body :: Body body
- codeVersion :: Maybe CodeVersion
- context :: Maybe Context
- custom :: Maybe (HashMap Text Value)
- environment :: Environment
- fingerprint :: Maybe Fingerprint
- framework :: Maybe Framework
- language :: Hardcoded "haskell"
- level :: Level
- notifier :: Notifier
- person :: Maybe Person
- platform :: Platform
- request :: Maybe (Request headers)
- server :: Maybe Server
- timestamp :: Maybe UTCTime
- title :: Maybe Title
- uuid :: Maybe UUID4
- newtype Context = Context Text
- newtype Fingerprint = Fingerprint Text
- newtype Framework = Framework Text
- newtype Title = Title Text
- newtype UUID4 = UUID4 UUID
- module Rollbar.Item.Body
- data Body arbitrary = Message {
- messageBody :: MessageBody
- messageData :: arbitrary
- newtype MessageBody = MessageBody Text
- module Rollbar.Item.Environment
- newtype Environment = Environment Text
- module Rollbar.Item.Level
- data Level
- module Rollbar.Item.CodeVersion
- data CodeVersion
- module Rollbar.Item.Hardcoded
- data Hardcoded (symbol :: Symbol) = Hardcoded
- module Rollbar.Item.MissingHeaders
- newtype MissingHeaders (headers :: [Symbol]) = MissingHeaders RequestHeaders
- module Rollbar.Item.Person
- data Person = Person {}
- newtype Email = Email Text
- newtype Id = Id Text
- newtype Username = Username Text
- module Rollbar.Item.Request
- newtype Get = Get Query
- newtype IP = IP SockAddr
- newtype Method = Method ByteString
- newtype MissingHeaders (headers :: [Symbol]) = MissingHeaders RequestHeaders
- newtype QueryString = QueryString ByteString
- newtype RawBody = RawBody ByteString
- newtype URL = URL (Maybe ByteString, [Text])
- module Rollbar.Item.Server
- data Server = Server {}
- newtype Branch = Branch Text
- newtype Root = Root Text
Data helpers
These functions are probably what you want to use most of the time.
They create a Data
with lots of data prefilled.
You can then override what you need with record updates.
debug :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers) Source #
info :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers) Source #
warning :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers) Source #
error :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers) Source #
critical :: Environment -> Maybe MessageBody -> payload -> Data payload ("Authorization" ': headers) Source #
Item
The thing we actually give to Rollbar.
Item | |
|
Item data
module Rollbar.AccessToken
newtype AccessToken Source #
Should have the scope "post_server_item".
module Rollbar.Item.Data
data Data body headers Source #
The main payload of an item. Most of this is metadata.
N.B. While it's entirely possible for you to create one of these yourself,
it's usually easier to use helpers like info
and error
.
Data | |
|
The place in the code where this item came from.
newtype Fingerprint Source #
How to group the item.
The framework that is using this package. E.g. "scotty", "servant", "yesod"
The title of the item.
A unique identifier for each item.
Required data
module Rollbar.Item.Body
This is the actual data that you want to give to Rollbar. Most of the rest of Rollbar is metadata.
Message | No stack trace, just a message and some arbitrary data. |
|
newtype MessageBody Source #
The primary message text to send to Rollbar.
module Rollbar.Item.Environment
newtype Environment Source #
Should be something meaningful to your program. E.g. "development", "production", "staging"
module Rollbar.Item.Level
Corresponds to the levels Rollbar allows in order of severity.
Optional data
module Rollbar.Item.CodeVersion
data CodeVersion Source #
Rollbar supports different ways to say what version the code is.
module Rollbar.Item.Hardcoded
module Rollbar.Item.MissingHeaders
newtype MissingHeaders (headers :: [Symbol]) Source #
The request headers with some missing
This is useful for removing sensitive information
like the Authorization
header.
Eq (MissingHeaders headers) Source # | |
Show (MissingHeaders headers) Source # | |
RemoveHeaders headers => ToJSON (MissingHeaders headers) Source # | |
FromJSON (MissingHeaders headers) Source # | |
module Rollbar.Item.Person
The user's email.
The user's identifier. This uniquely identifies a Person
to Rollbar.
The user's name.
module Rollbar.Item.Request
The query string parameters as a more useful data structure.
The IP address of the client.
The HTTP Verb
newtype MissingHeaders (headers :: [Symbol]) Source #
The request headers with some missing
This is useful for removing sensitive information
like the Authorization
header.
Eq (MissingHeaders headers) Source # | |
Show (MissingHeaders headers) Source # | |
RemoveHeaders headers => ToJSON (MissingHeaders headers) Source # | |
FromJSON (MissingHeaders headers) Source # | |
newtype QueryString Source #
The raw querystring.
The raw request body as a ByteString
.
The URL as a slightly more useful structure.
URL (Maybe ByteString, [Text]) |
module Rollbar.Item.Server
Information about the server using this package.
The git branch the server is running on.