Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 19 additions & 17 deletions rust/meta/src/dashboard/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,6 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">

const actors = (actors, nodeId) => `
<div class="p-6 max-w bg-white rounded-xl shadow-md flex flex-col space-y-1">
<div class="flex flex-row items-center">
<div class="w-3 h-3 flex-none bg-green-600 rounded-full mr-2"></div>
<div class="text-xl font-medium text-black">${actors.node.host.host}:${actors.node.host.port}</div>
</div>
<div id="actor-wrapper-${nodeId}" class="border border-gray-200 overflow-x-scroll">
<svg id="actor-${nodeId}" class="h-full"></svg>
</div>
Expand Down Expand Up @@ -363,17 +359,18 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">
const layoutStreamGraphs = (actors, nodeId) => {
const svg = d3.select(`#actor-${nodeId}`)

const oneColumn = ([actorId, node]) => {
const oneColumn = ([actorId, selectedActor, node]) => {
const actorJump = () =>
`<a target="_blank" rel="noopener noreferrer" class="text-sky-600" href="http://localhost:16680/search?service=compute&tags=%7B%22actor_id%22%3A%22${actorId}%22%2C%22msg%22%3A%22chunk%22%7D">Trace Message of Actor #${actorId}</a><br>
<a target="_blank" rel="noopener noreferrer" class="text-sky-600" href="http://localhost:16680/search?service=compute&tags=%7B%22actor_id%22%3A%22${actorId}%22%2C%22epoch%22%3A%22-1%22%7D">Trace Epoch "-1" of Actor #${actorId}</a><br>`
return `<div class="flex-1 overflow-x-scroll border border-gray-200 p-1">
<p class="text-xs font-mono">@${selectedActor.node.host.host}:${selectedActor.node.host.port}</p>
<p>${actorJump()}</p>
<p class="whitespace-pre text-xs font-mono">${JSON.stringify(node, null, 2)}</p>
</div>`
}
const showInfo = (actorIds, nodes) => {
$(`#message-${nodeId}`).html(_.zip(actorIds, nodes).map(oneColumn).join('\n'))
const showInfo = (actorIds, selectedActors, nodes) => {
$(`#message-${nodeId}`).html(_.zip(actorIds, selectedActors, nodes).map(oneColumn).join('\n'))
}

const findInfo = (actorIds, actorNodes, operatorId, action) => {
Expand All @@ -393,9 +390,9 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">
const actorIds = selectedActors.map(actor => actor.actorId)
if (d.data.operatorId == "dispatcher") {
const nodes = selectedActors.map(actor => ({ dispatcher: actor.dispatcher, downstreamActorId: actor.downstreamActorId }))
showInfo(actorIds, nodes)
showInfo(actorIds, selectedActors, nodes)
} else {
findInfo(actorIds, selectedActors.map(actor => actor.nodes), d.data.operatorId, showInfo)
findInfo(actorIds, selectedActors.map(actor => actor.nodes), d.data.operatorId, (actorIds, nodes) => showInfo(actorIds, selectedActors, nodes))
}
}

Expand Down Expand Up @@ -451,7 +448,7 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">

actors.append("text")
.attr("fill", "black")
.text(d => "Fragment " + d.data.id + ", Actor " + _.sortBy((d.data.actorIds)).join(", "))
.text(d => "#" + d.data.id + ", Actor " + _.sortBy((d.data.actorIds)).join(", "))
.attr("font-family", "sans-serif")
.attr("text-anchor", "end")
.attr("dy", d => d.ySize - actorMarginY + nodeRadius)
Expand Down Expand Up @@ -491,12 +488,17 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">
const loadActors = () => {
fetch('/api/actors')
.then(response => response.json())
.then(data => data.forEach(
(data, nodeId) => {
$("#actors").empty()
$("#actors").append(actors(data, nodeId))
layoutStreamGraphs(data, nodeId)
}))
.then(data => {
const allActors = []
data.forEach(data => {
// bind node info with actor
const nodeActors = data.actors.map(actor => ({ node: data.node, ...actor }))
allActors.push(...nodeActors)
})
const processedData = { actors: allActors }
$("#actors").append(actors(processedData, 0))
layoutStreamGraphs(processedData, 0)
})
}

const handleMvOnMvClick = (cb) => {
Expand All @@ -508,4 +510,4 @@ <h1 class="flex-auto leading-6 font-semibold text-sky-500 dark:text-sky-400">

</script>

</html>
</html>