Add the ability to download the current perfetto trace in Spinner.
This commit is contained in:
parent
07aa058a46
commit
cfe5ea3f9b
2 changed files with 17 additions and 0 deletions
|
@ -9,6 +9,12 @@
|
|||
{{/each}}
|
||||
</table>
|
||||
|
||||
<div>
|
||||
Download Trace: <a href="/trace">Link</a>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div>
|
||||
Database:
|
||||
<select id="database-selector">
|
||||
|
|
|
@ -12,7 +12,9 @@ import org.signal.core.util.ExceptionUtil
|
|||
import org.signal.core.util.ForeignKeyConstraint
|
||||
import org.signal.core.util.getForeignKeys
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.core.util.tracing.Tracer
|
||||
import org.signal.spinner.Spinner.DatabaseConfig
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.lang.IllegalArgumentException
|
||||
import java.security.NoSuchAlgorithmException
|
||||
import java.text.SimpleDateFormat
|
||||
|
@ -71,6 +73,7 @@ internal class SpinnerServer(
|
|||
session.method == Method.GET && session.uri == "/query" -> getQuery(dbParam)
|
||||
session.method == Method.POST && session.uri == "/query" -> postQuery(dbParam, dbConfig, session)
|
||||
session.method == Method.GET && session.uri == "/recent" -> getRecent(dbParam)
|
||||
session.method == Method.GET && session.uri == "/trace" -> getTrace()
|
||||
session.method == Method.GET && session.uri == "/logs" -> getLogs(dbParam)
|
||||
isWebsocketRequested(session) && session.uri == "/logs/websocket" -> getLogWebSocket(session)
|
||||
else -> {
|
||||
|
@ -217,6 +220,14 @@ internal class SpinnerServer(
|
|||
)
|
||||
}
|
||||
|
||||
private fun getTrace(): Response {
|
||||
return newChunkedResponse(
|
||||
Response.Status.OK,
|
||||
"application/octet-stream",
|
||||
ByteArrayInputStream(Tracer.getInstance().serialize())
|
||||
)
|
||||
}
|
||||
|
||||
private fun getLogs(dbName: String): Response {
|
||||
return renderTemplate(
|
||||
"logs",
|
||||
|
|
Loading…
Add table
Reference in a new issue