Currently the Rollbar adapter does not send a stack trace and so errors in Rollbar look like:
{
"body": {
"timestamp": 1690241898,
"message": {
"body": "Document efgh5678 not found"
}
},
"uuid": "7a49f3c1bb014cfc8e32bcdcbc78ce46",
"level": "error",
"timestamp": 1690241898,
"custom": [
"sdk: Flutter",
"sdkVersion: 0.0.1",
"authMode: default",
"authMethod: cookie",
"authProvider: MagicLink",
"type: error",
"environment: production",
"sdk: utopia-logger/0.1.0"
],
"environment": "production",
"framework": "unknown",
"trace_chain": [
{
"category": "http",
"message": "DELETE /api/v1/database/abcd1234/efgh5678",
"type": "default",
"level": "debug"
},
{
"category": "auth",
"message": "Using API key",
"type": "default",
"level": "debug"
},
{
"category": "auth",
"message": "Authenticated with * Using API Key",
"type": "default",
"level": "info"
},
{
"category": "database",
"message": "Found collection abcd1234",
"type": "default",
"level": "info"
},
{
"category": "database",
"message": "Permission for collection abcd1234 met",
"type": "default",
"level": "debug"
},
{
"category": "database",
"message": "Missing document when searching by ID!",
"type": "default",
"level": "error"
}
],
"metadata": {}
}
{
"body": {
"trace": {
"frames": [
{
"method": "include",
"args": [
"/workspace/logger/vendor/phpunit/phpunit/phpunit"
],
"lineno": 122,
"filename": "/workspace/logger/vendor/bin/phpunit"
},
{
"method": "PHPUnit\\TextUI\\Command::main",
"args": [],
"lineno": 107,
"filename": "/workspace/logger/vendor/phpunit/phpunit/phpunit"
},
{
"method": "PHPUnit\\TextUI\\Command::run",
"args": [
[
"vendor/bin/phpunit",
"--configuration",
"phpunit.xml",
"tests"
],
true
],
"lineno": 97,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/Command.php"
},
{
"method": "PHPUnit\\TextUI\\TestRunner::run",
"args": [
{
"class": "PHPUnit\\Framework\\TestSuite",
"value": [
{
"class": "PHPUnit\\Framework\\TestSuite",
"value": [
{
"class": "LoggerTest",
"value": []
},
{
"class": "LoggerTest",
"value": []
},
{
"class": "LoggerTest",
"value": []
},
{
"class": "LoggerTest",
"value": []
}
]
}
]
},
{
"registerMockObjectsFromTestArgumentsRecursively": false,
"forceCoversAnnotation": false,
"verbose": false,
"convertDeprecationsToExceptions": false,
"executionOrderDefects": 0,
"failOnSkipped": false,
"beStrictAboutResourceUsageDuringSmallTests": false,
"stopOnFailure": false,
"disallowTodoAnnotatedTests": false,
"colors": "auto",
"stopOnRisky": false,
"listSuites": false,
"executionOrder": 0,
"convertNoticesToExceptions": true,
"stopOnError": false,
"failOnRisky": false,
"noInteraction": false,
"stopOnSkipped": false,
"processIsolation": false,
"enforceTimeLimit": false,
"backupGlobals": false,
"notLoadedExtensions": [],
"strictCoverage": false,
"reportLowUpperBound": 50,
"reverseList": false,
"resolveDependencies": true,
"testdoxExcludeGroups": [],
"randomOrderSeed": 1690242484,
"testdoxGroups": [],
"cacheResult": true,
"failOnEmptyTestSuite": false,
"columns": 80,
"crap4jThreshold": 30,
"cacheResultFile": "/workspace/logger",
"listGroups": false,
"repeat": false,
"stopOnDefect": false,
"listTests": false,
"warnings": [],
"groups": [],
"beStrictAboutChangesToGlobalState": false,
"timeoutForMediumTests": 10,
"useDefaultConfiguration": true,
"configurationObject": {
"class": "PHPUnit\\TextUI\\XmlConfiguration\\Configuration",
"value": []
},
"convertErrorsToExceptions": true,
"reportUselessTests": true,
"disableCodeCoverageIgnore": false,
"configuration": "phpunit.xml",
"stopOnWarning": false,
"unavailableExtensions": [],
"failOnWarning": false,
"loadedExtensions": [],
"stopOnIncomplete": false,
"defaultTimeLimit": 1,
"listTestsXml": false,
"failOnIncomplete": false,
"backupStaticAttributes": false,
"bootstrap": "./vendor/autoload.php",
"timeoutForSmallTests": 1,
"disallowTestOutput": false,
"testSuffixes": [
"Test.php",
".phpt"
],
"filter": false,
"reportHighLowerBound": 90,
"listeners": [],
"excludeGroups": [],
"extensions": [],
"stderr": false,
"debug": false,
"convertWarningsToExceptions": true,
"ignoreDeprecatedCodeUnitsFromCodeCoverage": false,
"reverseDefectList": false,
"timeoutForLargeTests": 60
},
[],
true
],
"lineno": 144,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/Command.php"
},
{
"method": "PHPUnit\\Framework\\TestSuite::run",
"args": [
{
"class": "PHPUnit\\Framework\\TestResult",
"value": []
}
],
"lineno": 651,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/TestRunner.php"
},
{
"method": "PHPUnit\\Framework\\TestSuite::run",
"args": [
{
"class": "PHPUnit\\Framework\\TestResult",
"value": []
}
],
"lineno": 684,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestSuite.php"
},
{
"method": "PHPUnit\\Framework\\TestCase::run",
"args": [
{
"class": "PHPUnit\\Framework\\TestResult",
"value": []
}
],
"lineno": 684,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestSuite.php"
},
{
"method": "PHPUnit\\Framework\\TestResult::run",
"args": [
{
"class": "LoggerTest",
"value": []
}
],
"lineno": 964,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php"
},
{
"method": "PHPUnit\\Framework\\TestCase::runBare",
"args": [],
"lineno": 728,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestResult.php"
},
{
"method": "PHPUnit\\Framework\\TestCase::runTest",
"args": [],
"lineno": 1214,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php"
},
{
"method": "LoggerTest::testAdapters",
"args": [],
"lineno": 1608,
"filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php"
},
{
"lineno": 201,
"filename": "/workspace/logger/tests/LoggerTest.php"
}
],
"exception": {
"message": "test exception",
"class": "Exception"
}
}
},
"uuid": "1a71e944-02b4-457a-a02a-3f0d38b4f074",
"language": "php",
"level": "error",
"timestamp": 1690242484,
"code_version": "",
"request": {
"POST": [],
"GET": []
},
"server": {
"host": "55b92c98fe5a",
"argv": [
"vendor/bin/phpunit",
"--configuration",
"phpunit.xml",
"tests"
]
},
"environment": "production",
"platform": "Linux 55b92c98fe5a 6.1.27-060127-generic #202305051509 SMP PREEMPT_DYNAMIC Fri May 5 15:48:49 UTC 2023 x86_64",
"framework": "unknown",
"custom": [],
"notifier": {
"version": "3.1.2",
"name": "rollbar-php"
},
"metadata": {
"customer_timestamp": 1690242484
}
}
Having a stacktrace would make it easier to troubleshoot errors.
🔖 Feature description
Currently the Rollbar adapter does not send a stack trace and so errors in Rollbar look like:
{ "body": { "timestamp": 1690241898, "message": { "body": "Document efgh5678 not found" } }, "uuid": "7a49f3c1bb014cfc8e32bcdcbc78ce46", "level": "error", "timestamp": 1690241898, "custom": [ "sdk: Flutter", "sdkVersion: 0.0.1", "authMode: default", "authMethod: cookie", "authProvider: MagicLink", "type: error", "environment: production", "sdk: utopia-logger/0.1.0" ], "environment": "production", "framework": "unknown", "trace_chain": [ { "category": "http", "message": "DELETE /api/v1/database/abcd1234/efgh5678", "type": "default", "level": "debug" }, { "category": "auth", "message": "Using API key", "type": "default", "level": "debug" }, { "category": "auth", "message": "Authenticated with * Using API Key", "type": "default", "level": "info" }, { "category": "database", "message": "Found collection abcd1234", "type": "default", "level": "info" }, { "category": "database", "message": "Permission for collection abcd1234 met", "type": "default", "level": "debug" }, { "category": "database", "message": "Missing document when searching by ID!", "type": "default", "level": "error" } ], "metadata": {} }It would be helpful to get the stack trace in Rollbar so it looks more like:
{ "body": { "trace": { "frames": [ { "method": "include", "args": [ "/workspace/logger/vendor/phpunit/phpunit/phpunit" ], "lineno": 122, "filename": "/workspace/logger/vendor/bin/phpunit" }, { "method": "PHPUnit\\TextUI\\Command::main", "args": [], "lineno": 107, "filename": "/workspace/logger/vendor/phpunit/phpunit/phpunit" }, { "method": "PHPUnit\\TextUI\\Command::run", "args": [ [ "vendor/bin/phpunit", "--configuration", "phpunit.xml", "tests" ], true ], "lineno": 97, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/Command.php" }, { "method": "PHPUnit\\TextUI\\TestRunner::run", "args": [ { "class": "PHPUnit\\Framework\\TestSuite", "value": [ { "class": "PHPUnit\\Framework\\TestSuite", "value": [ { "class": "LoggerTest", "value": [] }, { "class": "LoggerTest", "value": [] }, { "class": "LoggerTest", "value": [] }, { "class": "LoggerTest", "value": [] } ] } ] }, { "registerMockObjectsFromTestArgumentsRecursively": false, "forceCoversAnnotation": false, "verbose": false, "convertDeprecationsToExceptions": false, "executionOrderDefects": 0, "failOnSkipped": false, "beStrictAboutResourceUsageDuringSmallTests": false, "stopOnFailure": false, "disallowTodoAnnotatedTests": false, "colors": "auto", "stopOnRisky": false, "listSuites": false, "executionOrder": 0, "convertNoticesToExceptions": true, "stopOnError": false, "failOnRisky": false, "noInteraction": false, "stopOnSkipped": false, "processIsolation": false, "enforceTimeLimit": false, "backupGlobals": false, "notLoadedExtensions": [], "strictCoverage": false, "reportLowUpperBound": 50, "reverseList": false, "resolveDependencies": true, "testdoxExcludeGroups": [], "randomOrderSeed": 1690242484, "testdoxGroups": [], "cacheResult": true, "failOnEmptyTestSuite": false, "columns": 80, "crap4jThreshold": 30, "cacheResultFile": "/workspace/logger", "listGroups": false, "repeat": false, "stopOnDefect": false, "listTests": false, "warnings": [], "groups": [], "beStrictAboutChangesToGlobalState": false, "timeoutForMediumTests": 10, "useDefaultConfiguration": true, "configurationObject": { "class": "PHPUnit\\TextUI\\XmlConfiguration\\Configuration", "value": [] }, "convertErrorsToExceptions": true, "reportUselessTests": true, "disableCodeCoverageIgnore": false, "configuration": "phpunit.xml", "stopOnWarning": false, "unavailableExtensions": [], "failOnWarning": false, "loadedExtensions": [], "stopOnIncomplete": false, "defaultTimeLimit": 1, "listTestsXml": false, "failOnIncomplete": false, "backupStaticAttributes": false, "bootstrap": "./vendor/autoload.php", "timeoutForSmallTests": 1, "disallowTestOutput": false, "testSuffixes": [ "Test.php", ".phpt" ], "filter": false, "reportHighLowerBound": 90, "listeners": [], "excludeGroups": [], "extensions": [], "stderr": false, "debug": false, "convertWarningsToExceptions": true, "ignoreDeprecatedCodeUnitsFromCodeCoverage": false, "reverseDefectList": false, "timeoutForLargeTests": 60 }, [], true ], "lineno": 144, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/Command.php" }, { "method": "PHPUnit\\Framework\\TestSuite::run", "args": [ { "class": "PHPUnit\\Framework\\TestResult", "value": [] } ], "lineno": 651, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/TextUI/TestRunner.php" }, { "method": "PHPUnit\\Framework\\TestSuite::run", "args": [ { "class": "PHPUnit\\Framework\\TestResult", "value": [] } ], "lineno": 684, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestSuite.php" }, { "method": "PHPUnit\\Framework\\TestCase::run", "args": [ { "class": "PHPUnit\\Framework\\TestResult", "value": [] } ], "lineno": 684, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestSuite.php" }, { "method": "PHPUnit\\Framework\\TestResult::run", "args": [ { "class": "LoggerTest", "value": [] } ], "lineno": 964, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php" }, { "method": "PHPUnit\\Framework\\TestCase::runBare", "args": [], "lineno": 728, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestResult.php" }, { "method": "PHPUnit\\Framework\\TestCase::runTest", "args": [], "lineno": 1214, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php" }, { "method": "LoggerTest::testAdapters", "args": [], "lineno": 1608, "filename": "/workspace/logger/vendor/phpunit/phpunit/src/Framework/TestCase.php" }, { "lineno": 201, "filename": "/workspace/logger/tests/LoggerTest.php" } ], "exception": { "message": "test exception", "class": "Exception" } } }, "uuid": "1a71e944-02b4-457a-a02a-3f0d38b4f074", "language": "php", "level": "error", "timestamp": 1690242484, "code_version": "", "request": { "POST": [], "GET": [] }, "server": { "host": "55b92c98fe5a", "argv": [ "vendor/bin/phpunit", "--configuration", "phpunit.xml", "tests" ] }, "environment": "production", "platform": "Linux 55b92c98fe5a 6.1.27-060127-generic #202305051509 SMP PREEMPT_DYNAMIC Fri May 5 15:48:49 UTC 2023 x86_64", "framework": "unknown", "custom": [], "notifier": { "version": "3.1.2", "name": "rollbar-php" }, "metadata": { "customer_timestamp": 1690242484 } }🎤 Pitch
Having a stacktrace would make it easier to troubleshoot errors.
👀 Have you spent some time to check if this issue has been raised before?
🏢 Have you read the Code of Conduct?