feat: restart containers

This commit is contained in:
Rob Watson 2025-02-09 17:39:53 +01:00 committed by Rob Watson
parent a993806666
commit 79d8df8923
12 changed files with 366 additions and 46 deletions

View File

@ -20,7 +20,7 @@ jobs:
echo "$HOME/.local/share/mise/bin" >> $GITHUB_PATH
echo "$HOME/.local/share/mise/shims" >> $GITHUB_PATH
- name: install nscd
run: sudo apt-get install nscd
run: sudo apt-get -y update && sudo apt-get -y --no-install-recommends install nscd
- name: setup ffmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
with:

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/config.yml
/termstream.log
/mediamtx.yml

View File

@ -34,6 +34,7 @@ type DockerClient interface {
io.Closer
ContainerCreate(context.Context, *container.Config, *container.HostConfig, *network.NetworkingConfig, *ocispec.Platform, string) (container.CreateResponse, error)
ContainerInspect(context.Context, string) (types.ContainerJSON, error)
ContainerList(context.Context, container.ListOptions) ([]types.Container, error)
ContainerRemove(context.Context, string, container.RemoveOptions) error
ContainerStart(context.Context, string, container.StartOptions) error
@ -86,6 +87,7 @@ type stats struct {
cpuPercent float64
memoryUsageBytes uint64
rxRate, txRate int
rxSince time.Time
}
// getStats returns a channel that will receive container stats. The channel is
@ -204,9 +206,55 @@ func (a *Client) runContainerLoop(
stateC chan<- domain.Container,
errC chan<- error,
) {
type containerWaitResponse struct {
container.WaitResponse
restarting bool
}
containerRespC := make(chan containerWaitResponse)
containerErrC := make(chan error)
statsC := a.getStats(containerID, networkCountConfig)
eventsC := a.getEvents(containerID)
containerRespC, containerErrC := a.apiClient.ContainerWait(ctx, containerID, container.WaitConditionNotRunning)
// ContainerWait only sends a result for the first non-running state, so we
// need to poll it repeatedly.
//
// The goroutine exits when a value is received on the error channel, or when
// the container exits and is not restarting, or when the context is cancelled.
go func() {
for {
respC, errC := a.apiClient.ContainerWait(ctx, containerID, container.WaitConditionNextExit)
select {
case resp := <-respC:
// Check if the container is restarting. If it is not then we don't
// want to wait for it again and can return early.
//
// Low priority: is the API call necessary?
ctr, err := a.apiClient.ContainerInspect(ctx, containerID)
if err != nil {
// TODO: error handling?
a.logger.Error("Error inspecting container", "err", err, "id", shortID(containerID))
containerErrC <- err
return
}
// Race condition: the container may have already restarted.
restarting := ctr.State.Status == "restarting" || ctr.State.Status == "running"
containerRespC <- containerWaitResponse{WaitResponse: resp, restarting: restarting}
if !restarting {
return
}
case err := <-errC:
// Otherwise, this is probably unexpected and we need to handle it.
// TODO: improve handling
containerErrC <- err
return
case <-ctx.Done():
return
}
}
}()
state := &domain.Container{ID: containerID, State: "running"}
sendState := func() { stateC <- *state }
@ -215,10 +263,28 @@ func (a *Client) runContainerLoop(
for {
select {
case resp := <-containerRespC:
a.logger.Info("Container entered non-running state", "exit_code", resp.StatusCode, "id", shortID(containerID))
state.State = "exited"
a.logger.Info("Container entered non-running state", "exit_code", resp.StatusCode, "id", shortID(containerID), "restarting", resp.restarting)
var containerState string
if resp.restarting {
containerState = "restarting"
} else {
containerState = "exited"
}
state.State = containerState
state.CPUPercent = 0
state.MemoryUsageBytes = 0
state.HealthState = "unhealthy"
state.RxRate = 0
state.TxRate = 0
state.RxSince = time.Time{}
state.RestartCount++
sendState()
if !resp.restarting {
return
}
case err := <-containerErrC:
// TODO: error handling?
if err != context.Canceled {
@ -227,6 +293,16 @@ func (a *Client) runContainerLoop(
errC <- err
return
case evt := <-eventsC:
if evt.Type != events.ContainerEventType {
continue
}
if evt.Action == "start" {
state.State = "running"
sendState()
continue
}
if strings.Contains(string(evt.Action), "health_status") {
switch evt.Action {
case events.ActionHealthStatusRunning:
@ -240,12 +316,14 @@ func (a *Client) runContainerLoop(
state.HealthState = "unknown"
}
sendState()
continue
}
case stats := <-statsC:
state.CPUPercent = stats.cpuPercent
state.MemoryUsageBytes = stats.memoryUsageBytes
state.RxRate = stats.rxRate
state.TxRate = stats.txRate
case s := <-statsC:
state.CPUPercent = s.cpuPercent
state.MemoryUsageBytes = s.memoryUsageBytes
state.RxRate = s.rxRate
state.TxRate = s.txRate
state.RxSince = s.rxSince
sendState()
}
}
@ -253,6 +331,10 @@ func (a *Client) runContainerLoop(
// Close closes the client, stopping and removing all running containers.
func (a *Client) Close() error {
if a.ctx.Err() != nil {
return nil
}
a.cancel()
ctx, cancel := context.WithTimeout(context.Background(), stopTimeout)

View File

@ -2,6 +2,7 @@ package container_test
import (
"context"
"errors"
"testing"
"time"
@ -43,7 +44,7 @@ func TestClientStartStop(t *testing.T) {
},
})
testhelpers.ChanDiscard(containerStateC)
testhelpers.ChanRequireNoError(t, errC)
testhelpers.ChanRequireNoError(ctx, t, errC)
require.Eventually(
t,
@ -162,3 +163,64 @@ func TestClientRemoveContainers(t *testing.T) {
assert.NoError(t, <-err3C)
}
func TestContainerRestart(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
logger := testhelpers.NewTestLogger()
apiClient, err := client.NewClientWithOpts(client.FromEnv)
require.NoError(t, err)
containerName := "termstream-test-" + uuid.NewString()
component := "test-restart"
client, err := container.NewClient(ctx, apiClient, logger)
require.NoError(t, err)
defer client.Close()
containerStateC, errC := client.RunContainer(ctx, container.RunContainerParams{
Name: containerName,
ChanSize: 1,
ContainerConfig: &typescontainer.Config{
Image: "alpine:latest",
Cmd: []string{"sleep", "1"},
Labels: map[string]string{"component": component},
},
HostConfig: &typescontainer.HostConfig{
NetworkMode: "default",
RestartPolicy: typescontainer.RestartPolicy{Name: "always"},
},
})
testhelpers.ChanRequireNoError(ctx, t, errC)
containerState := <-containerStateC
assert.Equal(t, "pulling", containerState.State)
containerState = <-containerStateC
assert.Equal(t, "created", containerState.State)
containerState = <-containerStateC
assert.Equal(t, "running", containerState.State)
err = nil // reset error
done := make(chan struct{})
go func() {
defer close(done)
var count int
for {
containerState = <-containerStateC
if containerState.State == "restarting" {
break
} else if containerState.State == "exited" {
err = errors.New("container exited unexpectedly")
} else if count >= 5 {
err = errors.New("container did not enter restarting state")
} else {
// wait for a few state changes
count++
}
}
}()
<-done
require.NoError(t, err)
}

View File

@ -7,6 +7,7 @@ import (
"errors"
"io"
"log/slog"
"time"
"github.com/docker/docker/api/types/container"
)
@ -31,13 +32,21 @@ func handleStats(
defer statsReader.Body.Close()
var (
processedAny bool
lastNetworkRx uint64
lastNetworkTx uint64
lastRxBytes uint64
lastTxBytes uint64
getAvgRxRate func(float64) float64
getAvgTxRate func(float64) float64
rxSince time.Time
)
getAvgRxRate := rolling(10)
getAvgTxRate := rolling(10)
reset := func() {
lastRxBytes = 0
lastTxBytes = 0
getAvgRxRate = rolling(10)
getAvgTxRate = rolling(10)
rxSince = time.Time{}
}
reset()
buf := make([]byte, 4_096)
for {
@ -56,30 +65,44 @@ func handleStats(
break
}
// https://stackoverflow.com/a/30292327/62871
cpuDelta := float64(statsResp.CPUStats.CPUUsage.TotalUsage - statsResp.PreCPUStats.CPUUsage.TotalUsage)
systemDelta := float64(statsResp.CPUStats.SystemUsage - statsResp.PreCPUStats.SystemUsage)
rxBytes := statsResp.Networks[networkNameRx].RxBytes
txBytes := statsResp.Networks[networkNameTx].TxBytes
var avgRxRate, avgTxRate float64
if processedAny {
secondsSinceLastReceived := statsResp.Read.Sub(statsResp.PreRead).Seconds()
diffRxBytes := (statsResp.Networks[networkNameRx].RxBytes - lastNetworkRx)
diffTxBytes := (statsResp.Networks[networkNameTx].TxBytes - lastNetworkTx)
rxRate := float64(diffRxBytes) / secondsSinceLastReceived / 1000.0 * 8
txRate := float64(diffTxBytes) / secondsSinceLastReceived / 1000.0 * 8
avgRxRate = getAvgRxRate(rxRate)
avgTxRate = getAvgTxRate(txRate)
if statsResp.PreRead.IsZero() || rxBytes < lastRxBytes || txBytes < lastTxBytes {
// Container restarted
reset()
lastRxBytes = rxBytes
lastTxBytes = txBytes
ch <- stats{}
continue
}
lastNetworkRx = statsResp.Networks[networkNameRx].RxBytes
lastNetworkTx = statsResp.Networks[networkNameTx].TxBytes
processedAny = true
// https://stackoverflow.com/a/30292327/62871
var cpuDelta, systemDelta float64
cpuDelta = float64(statsResp.CPUStats.CPUUsage.TotalUsage - statsResp.PreCPUStats.CPUUsage.TotalUsage)
systemDelta = float64(statsResp.CPUStats.SystemUsage - statsResp.PreCPUStats.SystemUsage)
secondsSinceLastReceived := statsResp.Read.Sub(statsResp.PreRead).Seconds()
diffRxBytes := rxBytes - lastRxBytes
diffTxBytes := txBytes - lastTxBytes
rxRate := float64(diffRxBytes) / secondsSinceLastReceived / 1000.0 * 8
txRate := float64(diffTxBytes) / secondsSinceLastReceived / 1000.0 * 8
avgRxRate := getAvgRxRate(rxRate)
avgTxRate := getAvgTxRate(txRate)
if diffRxBytes > 0 && rxSince.IsZero() {
rxSince = statsResp.PreRead
}
lastRxBytes = rxBytes
lastTxBytes = txBytes
ch <- stats{
cpuPercent: (cpuDelta / systemDelta) * float64(statsResp.CPUStats.OnlineCPUs) * 100,
memoryUsageBytes: statsResp.MemoryStats.Usage,
rxRate: int(avgRxRate),
txRate: int(avgTxRate),
rxSince: rxSince,
}
}
}

View File

@ -16,6 +16,9 @@ import (
//go:embed testdata/stats1.json
var statsJSON []byte
//go:embed testdata/stats2.json
var statsWithRestartJSON []byte
func TestHandleStats(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
@ -56,3 +59,55 @@ func TestHandleStats(t *testing.T) {
assert.Equal(t, 1091, lastStats.rxRate)
assert.Equal(t, 1108, lastStats.txRate)
}
func TestHandleStatsWithContainerRestart(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
pr, pw := io.Pipe()
containerID := "d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39"
dockerClient := testhelpers.MockDockerClient{ContainerStatsResponse: pr}
networkCountConfig := NetworkCountConfig{Rx: "eth1", Tx: "eth0"}
logger := testhelpers.NewTestLogger()
ch := make(chan stats)
go func() {
defer close(ch)
handleStats(ctx, containerID, &dockerClient, networkCountConfig, logger, ch)
}()
go func() {
defer pw.Close()
scanner := bufio.NewScanner(bytes.NewReader(statsWithRestartJSON))
for scanner.Scan() {
_, err := pw.Write(scanner.Bytes())
require.NoError(t, err)
}
}()
// before container restart:
var lastStats stats
for range 31 {
lastStats = <-ch
}
assert.Equal(t, 5.008083989501312, lastStats.cpuPercent)
assert.Equal(t, uint64(24068096), lastStats.memoryUsageBytes)
assert.Equal(t, 1199, lastStats.rxRate)
assert.Equal(t, 1200, lastStats.txRate)
// restart triggers zero value stats:
assert.Equal(t, stats{}, <-ch)
// after container restart:
for stats := range ch {
lastStats = stats
}
assert.Equal(t, 1.887690322580645, lastStats.cpuPercent)
assert.Equal(t, uint64(12496896), lastStats.memoryUsageBytes)
assert.Equal(t, 1215, lastStats.rxRate)
assert.Equal(t, 1254, lastStats.txRate)
}

46
container/testdata/stats2.json vendored Normal file
View File

@ -0,0 +1,46 @@
{"read":"2025-02-10T17:09:55.869057432Z","preread":"0001-01-01T00:00:00Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":1392640},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":1392640},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":52658000,"usage_in_kernelmode":8666000,"usage_in_usermode":43991000},"system_cpu_usage":8890295280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":0,"usage_in_kernelmode":0,"usage_in_usermode":0},"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":1904640,"stats":{"active_anon":0,"active_file":811008,"anon":0,"anon_thp":0,"file":1081344,"file_dirty":0,"file_mapped":405504,"file_writeback":0,"inactive_anon":0,"inactive_file":135168,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":924,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":110,"rx_packets":1,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":110,"rx_packets":1,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:09:56.877526504Z","preread":"2025-02-10T17:09:55.869057432Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":16949248},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":16949248},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":105599000,"usage_in_kernelmode":26283000,"usage_in_usermode":79316000},"system_cpu_usage":8890303140000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":52658000,"usage_in_kernelmode":8666000,"usage_in_usermode":43991000},"system_cpu_usage":8890295280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":22638592,"stats":{"active_anon":0,"active_file":7368704,"anon":5677056,"anon_thp":0,"file":15273984,"file_dirty":0,"file_mapped":11218944,"file_writeback":0,"inactive_anon":5541888,"inactive_file":7704576,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":3300,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":306,"rx_packets":3,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":24652,"rx_packets":67,"rx_errors":0,"rx_dropped":0,"tx_bytes":5729,"tx_packets":35,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:09:57.883923298Z","preread":"2025-02-10T17:09:56.877526504Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":16949248},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":16949248},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":112515000,"usage_in_kernelmode":26283000,"usage_in_usermode":86232000},"system_cpu_usage":8890310960000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":105599000,"usage_in_kernelmode":26283000,"usage_in_usermode":79316000},"system_cpu_usage":8890303140000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":22683648,"stats":{"active_anon":0,"active_file":7368704,"anon":5677056,"anon_thp":0,"file":15273984,"file_dirty":0,"file_mapped":11218944,"file_writeback":0,"inactive_anon":5677056,"inactive_file":7704576,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":3333,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":758,"rx_packets":6,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":48908,"rx_packets":119,"rx_errors":0,"rx_dropped":0,"tx_bytes":7313,"tx_packets":59,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:09:58.889549811Z","preread":"2025-02-10T17:09:57.883923298Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":165737000,"usage_in_kernelmode":36931000,"usage_in_usermode":128806000},"system_cpu_usage":8890318700000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":112515000,"usage_in_kernelmode":26283000,"usage_in_usermode":86232000},"system_cpu_usage":8890310960000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":30212096,"stats":{"active_anon":0,"active_file":7368704,"anon":12165120,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":12165120,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":5049,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":1642,"rx_packets":11,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":212049,"rx_packets":213,"rx_errors":0,"rx_dropped":0,"tx_bytes":10283,"tx_packets":104,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:09:59.895407034Z","preread":"2025-02-10T17:09:58.889549811Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":193829000,"usage_in_kernelmode":52279000,"usage_in_usermode":141549000},"system_cpu_usage":8890326600000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":165737000,"usage_in_kernelmode":36931000,"usage_in_usermode":128806000},"system_cpu_usage":8890318700000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24473600,"stats":{"active_anon":0,"active_file":7368704,"anon":6623232,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6758400,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":5379,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":11167,"rx_packets":101,"rx_errors":0,"rx_dropped":0,"tx_bytes":327324,"tx_packets":171,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":337414,"rx_packets":293,"rx_errors":0,"rx_dropped":0,"tx_bytes":13253,"tx_packets":149,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:00.902957997Z","preread":"2025-02-10T17:09:59.895407034Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":223463000,"usage_in_kernelmode":71847000,"usage_in_usermode":151615000},"system_cpu_usage":8890334290000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":193829000,"usage_in_kernelmode":52279000,"usage_in_usermode":141549000},"system_cpu_usage":8890326600000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24567808,"stats":{"active_anon":0,"active_file":7368704,"anon":6623232,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6758400,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":5643,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":139264,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":18361,"rx_packets":210,"rx_errors":0,"rx_dropped":0,"tx_bytes":506612,"tx_packets":306,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":513139,"rx_packets":374,"rx_errors":0,"rx_dropped":0,"tx_bytes":16619,"tx_packets":200,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:01.909875394Z","preread":"2025-02-10T17:10:00.902957997Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":247263000,"usage_in_kernelmode":85158000,"usage_in_usermode":162105000},"system_cpu_usage":8890342040000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":223463000,"usage_in_kernelmode":71847000,"usage_in_usermode":151615000},"system_cpu_usage":8890334290000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24563712,"stats":{"active_anon":0,"active_file":7368704,"anon":6758400,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6758400,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":5709,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":139264,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":26415,"rx_packets":330,"rx_errors":0,"rx_dropped":0,"tx_bytes":641820,"tx_packets":452,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":644012,"rx_packets":452,"rx_errors":0,"rx_dropped":0,"tx_bytes":19655,"tx_packets":246,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:02.92013887Z","preread":"2025-02-10T17:10:01.909875394Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":277321000,"usage_in_kernelmode":98262000,"usage_in_usermode":179059000},"system_cpu_usage":8890349700000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":247263000,"usage_in_kernelmode":85158000,"usage_in_usermode":162105000},"system_cpu_usage":8890342040000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24547328,"stats":{"active_anon":0,"active_file":7368704,"anon":6893568,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6623232,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6006,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":4096,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":34137,"rx_packets":447,"rx_errors":0,"rx_dropped":0,"tx_bytes":817578,"tx_packets":596,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":817988,"rx_packets":533,"rx_errors":0,"rx_dropped":0,"tx_bytes":22757,"tx_packets":293,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:03.928143884Z","preread":"2025-02-10T17:10:02.92013887Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":304243000,"usage_in_kernelmode":114951000,"usage_in_usermode":189292000},"system_cpu_usage":8890357410000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":277321000,"usage_in_kernelmode":98262000,"usage_in_usermode":179059000},"system_cpu_usage":8890349700000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24563712,"stats":{"active_anon":0,"active_file":7368704,"anon":6893568,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6623232,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6105,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":4096,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":42477,"rx_packets":573,"rx_errors":0,"rx_dropped":0,"tx_bytes":950115,"tx_packets":750,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":941679,"rx_packets":612,"rx_errors":0,"rx_dropped":0,"tx_bytes":25859,"tx_packets":340,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:04.936009415Z","preread":"2025-02-10T17:10:03.928143884Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":329490000,"usage_in_kernelmode":126048000,"usage_in_usermode":203442000},"system_cpu_usage":8890365130000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":304243000,"usage_in_kernelmode":114951000,"usage_in_usermode":189292000},"system_cpu_usage":8890357410000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24555520,"stats":{"active_anon":0,"active_file":7368704,"anon":7163904,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6758400,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6237,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":4096,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":50529,"rx_packets":695,"rx_errors":0,"rx_dropped":0,"tx_bytes":1124690,"tx_packets":900,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1111633,"rx_packets":692,"rx_errors":0,"rx_dropped":0,"tx_bytes":28961,"tx_packets":387,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:05.942519392Z","preread":"2025-02-10T17:10:04.936009415Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":357495000,"usage_in_kernelmode":135046000,"usage_in_usermode":222449000},"system_cpu_usage":8890372800000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":329490000,"usage_in_kernelmode":126048000,"usage_in_usermode":203442000},"system_cpu_usage":8890365130000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24559616,"stats":{"active_anon":0,"active_file":7368704,"anon":7028736,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":6758400,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6369,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":4096,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":58317,"rx_packets":813,"rx_errors":0,"rx_dropped":0,"tx_bytes":1274103,"tx_packets":1048,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1256387,"rx_packets":770,"rx_errors":0,"rx_dropped":0,"tx_bytes":32063,"tx_packets":434,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:06.952030694Z","preread":"2025-02-10T17:10:05.942519392Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":382506000,"usage_in_kernelmode":153782000,"usage_in_usermode":228723000},"system_cpu_usage":8890380530000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":357495000,"usage_in_kernelmode":135046000,"usage_in_usermode":222449000},"system_cpu_usage":8890372800000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24489984,"stats":{"active_anon":0,"active_file":7368704,"anon":7163904,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6633,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":66303,"rx_packets":934,"rx_errors":0,"rx_dropped":0,"tx_bytes":1460333,"tx_packets":1197,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1439992,"rx_packets":851,"rx_errors":0,"rx_dropped":0,"tx_bytes":35375,"tx_packets":484,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:07.96208097Z","preread":"2025-02-10T17:10:06.952030694Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":410044000,"usage_in_kernelmode":165819000,"usage_in_usermode":244225000},"system_cpu_usage":8890388280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":382506000,"usage_in_kernelmode":153782000,"usage_in_usermode":228723000},"system_cpu_usage":8890380530000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24481792,"stats":{"active_anon":0,"active_file":7368704,"anon":6893568,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":973,"pgfault":6732,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1248,"pgscan":396,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":75790,"rx_packets":1055,"rx_errors":0,"rx_dropped":0,"tx_bytes":1606399,"tx_packets":1346,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1581210,"rx_packets":933,"rx_errors":0,"rx_dropped":0,"tx_bytes":38411,"tx_packets":530,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:08.971599006Z","preread":"2025-02-10T17:10:07.96208097Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":439160000,"usage_in_kernelmode":184062000,"usage_in_usermode":255097000},"system_cpu_usage":8890396000000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":410044000,"usage_in_kernelmode":165819000,"usage_in_usermode":244225000},"system_cpu_usage":8890388280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24510464,"stats":{"active_anon":0,"active_file":7368704,"anon":6893568,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":33,"pgdeactivate":973,"pgfault":6930,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1281,"pgscan":464,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":83578,"rx_packets":1173,"rx_errors":0,"rx_dropped":0,"tx_bytes":1771712,"tx_packets":1492,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1743655,"rx_packets":1012,"rx_errors":0,"rx_dropped":0,"tx_bytes":41579,"tx_packets":578,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:09.992944293Z","preread":"2025-02-10T17:10:08.971599006Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":467949000,"usage_in_kernelmode":200401000,"usage_in_usermode":267547000},"system_cpu_usage":8890403790000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":439160000,"usage_in_kernelmode":184062000,"usage_in_usermode":255097000},"system_cpu_usage":8890396000000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24621056,"stats":{"active_anon":0,"active_file":7368704,"anon":6893568,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":33,"pgdeactivate":973,"pgfault":6996,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1281,"pgscan":464,"pgsteal":231,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":91432,"rx_packets":1292,"rx_errors":0,"rx_dropped":0,"tx_bytes":1920922,"tx_packets":1641,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1886199,"rx_packets":1090,"rx_errors":0,"rx_dropped":0,"tx_bytes":44681,"tx_packets":625,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:11.005021327Z","preread":"2025-02-10T17:10:09.992944293Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":497752000,"usage_in_kernelmode":208238000,"usage_in_usermode":289514000},"system_cpu_usage":8890411500000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":467949000,"usage_in_kernelmode":200401000,"usage_in_usermode":267547000},"system_cpu_usage":8890403790000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24322048,"stats":{"active_anon":0,"active_file":7368704,"anon":6758400,"anon_thp":0,"file":16355328,"file_dirty":0,"file_mapped":11894784,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8650752,"kernel_stack":49152,"pgactivate":66,"pgdeactivate":1006,"pgfault":7194,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1314,"pgscan":531,"pgsteal":264,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":99352,"rx_packets":1412,"rx_errors":0,"rx_dropped":0,"tx_bytes":2086533,"tx_packets":1790,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2047124,"rx_packets":1168,"rx_errors":0,"rx_dropped":0,"tx_bytes":47717,"tx_packets":671,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:12.015495988Z","preread":"2025-02-10T17:10:11.005021327Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":521981000,"usage_in_kernelmode":231735000,"usage_in_usermode":290246000},"system_cpu_usage":8890419280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":497752000,"usage_in_kernelmode":208238000,"usage_in_usermode":289514000},"system_cpu_usage":8890411500000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":23359488,"stats":{"active_anon":0,"active_file":7233536,"anon":6758400,"anon_thp":0,"file":15544320,"file_dirty":0,"file_mapped":11354112,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8105984,"kernel_stack":49152,"pgactivate":66,"pgdeactivate":1072,"pgfault":7359,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1413,"pgscan":767,"pgsteal":500,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":107272,"rx_packets":1532,"rx_errors":0,"rx_dropped":0,"tx_bytes":2230684,"tx_packets":1940,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2186601,"rx_packets":1247,"rx_errors":0,"rx_dropped":0,"tx_bytes":50885,"tx_packets":719,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:13.018184608Z","preread":"2025-02-10T17:10:12.015495988Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":543228000,"usage_in_kernelmode":238444000,"usage_in_usermode":304783000},"system_cpu_usage":8890427020000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":521981000,"usage_in_kernelmode":231735000,"usage_in_usermode":290246000},"system_cpu_usage":8890419280000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":23359488,"stats":{"active_anon":0,"active_file":7233536,"anon":7028736,"anon_thp":0,"file":15544320,"file_dirty":0,"file_mapped":11354112,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8105984,"kernel_stack":49152,"pgactivate":66,"pgdeactivate":1072,"pgfault":7590,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1413,"pgscan":767,"pgsteal":500,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":115060,"rx_packets":1650,"rx_errors":0,"rx_dropped":0,"tx_bytes":2410163,"tx_packets":2087,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2361578,"rx_packets":1326,"rx_errors":0,"rx_dropped":0,"tx_bytes":53987,"tx_packets":766,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:14.030423179Z","preread":"2025-02-10T17:10:13.018184608Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":567307000,"usage_in_kernelmode":257134000,"usage_in_usermode":310172000},"system_cpu_usage":8890435030000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":543228000,"usage_in_kernelmode":238444000,"usage_in_usermode":304783000},"system_cpu_usage":8890427020000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":23318528,"stats":{"active_anon":0,"active_file":7233536,"anon":6893568,"anon_thp":0,"file":15544320,"file_dirty":0,"file_mapped":11354112,"file_writeback":0,"inactive_anon":7028736,"inactive_file":8105984,"kernel_stack":49152,"pgactivate":66,"pgdeactivate":1072,"pgfault":7755,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1413,"pgscan":767,"pgsteal":500,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":122914,"rx_packets":1769,"rx_errors":0,"rx_dropped":0,"tx_bytes":2575304,"tx_packets":2234,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2522058,"rx_packets":1403,"rx_errors":0,"rx_dropped":0,"tx_bytes":57089,"tx_packets":813,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:15.041322526Z","preread":"2025-02-10T17:10:14.030423179Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":596235000,"usage_in_kernelmode":278077000,"usage_in_usermode":318158000},"system_cpu_usage":8890442920000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":567307000,"usage_in_kernelmode":257134000,"usage_in_usermode":310172000},"system_cpu_usage":8890435030000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":23187456,"stats":{"active_anon":0,"active_file":7233536,"anon":6893568,"anon_thp":0,"file":15544320,"file_dirty":0,"file_mapped":11354112,"file_writeback":0,"inactive_anon":7163904,"inactive_file":8105984,"kernel_stack":49152,"pgactivate":66,"pgdeactivate":1072,"pgfault":7821,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":1413,"pgscan":767,"pgsteal":500,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":130768,"rx_packets":1888,"rx_errors":0,"rx_dropped":0,"tx_bytes":2716872,"tx_packets":2382,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2661934,"rx_packets":1482,"rx_errors":0,"rx_dropped":0,"tx_bytes":60397,"tx_packets":863,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:16.046672299Z","preread":"2025-02-10T17:10:15.041322526Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":615752000,"usage_in_kernelmode":297594000,"usage_in_usermode":318158000},"system_cpu_usage":8890450940000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":596235000,"usage_in_kernelmode":278077000,"usage_in_usermode":318158000},"system_cpu_usage":8890442920000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18952192,"stats":{"active_anon":0,"active_file":4530176,"anon":6893568,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7163904,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":7986,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":138622,"rx_packets":2007,"rx_errors":0,"rx_dropped":0,"tx_bytes":2875738,"tx_packets":2531,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2813347,"rx_packets":1561,"rx_errors":0,"rx_dropped":0,"tx_bytes":63499,"tx_packets":910,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:17.054654915Z","preread":"2025-02-10T17:10:16.046672299Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":644114000,"usage_in_kernelmode":324118000,"usage_in_usermode":319995000},"system_cpu_usage":8890458950000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":615752000,"usage_in_kernelmode":297594000,"usage_in_usermode":318158000},"system_cpu_usage":8890450940000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18968576,"stats":{"active_anon":0,"active_file":4530176,"anon":6758400,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7299072,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8217,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":146410,"rx_packets":2125,"rx_errors":0,"rx_dropped":0,"tx_bytes":3034657,"tx_packets":2679,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2967686,"rx_packets":1640,"rx_errors":0,"rx_dropped":0,"tx_bytes":66601,"tx_packets":957,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:18.063376254Z","preread":"2025-02-10T17:10:17.054654915Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":668936000,"usage_in_kernelmode":336609000,"usage_in_usermode":332327000},"system_cpu_usage":8890466870000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":644114000,"usage_in_kernelmode":324118000,"usage_in_usermode":319995000},"system_cpu_usage":8890458950000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18968576,"stats":{"active_anon":0,"active_file":4530176,"anon":6758400,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7299072,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8316,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":154330,"rx_packets":2245,"rx_errors":0,"rx_dropped":0,"tx_bytes":3167407,"tx_packets":2829,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3095740,"rx_packets":1718,"rx_errors":0,"rx_dropped":0,"tx_bytes":69703,"tx_packets":1004,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:19.066509283Z","preread":"2025-02-10T17:10:18.063376254Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":684871000,"usage_in_kernelmode":349983000,"usage_in_usermode":334888000},"system_cpu_usage":8890474830000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":668936000,"usage_in_kernelmode":336609000,"usage_in_usermode":332327000},"system_cpu_usage":8890466870000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18976768,"stats":{"active_anon":0,"active_file":4530176,"anon":6893568,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7434240,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8547,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":162118,"rx_packets":2363,"rx_errors":0,"rx_dropped":0,"tx_bytes":3355924,"tx_packets":2977,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3279579,"rx_packets":1797,"rx_errors":0,"rx_dropped":0,"tx_bytes":72805,"tx_packets":1051,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:20.077261749Z","preread":"2025-02-10T17:10:19.066509283Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":713500000,"usage_in_kernelmode":361619000,"usage_in_usermode":351881000},"system_cpu_usage":8890482730000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":684871000,"usage_in_kernelmode":349983000,"usage_in_usermode":334888000},"system_cpu_usage":8890474830000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":19144704,"stats":{"active_anon":0,"active_file":4530176,"anon":7028736,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7434240,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8712,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":169972,"rx_packets":2482,"rx_errors":0,"rx_dropped":0,"tx_bytes":3501092,"tx_packets":3125,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3445350,"rx_packets":1877,"rx_errors":0,"rx_dropped":0,"tx_bytes":75907,"tx_packets":1098,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:21.090532458Z","preread":"2025-02-10T17:10:20.077261749Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":742248000,"usage_in_kernelmode":373123000,"usage_in_usermode":369124000},"system_cpu_usage":8890490640000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":713500000,"usage_in_kernelmode":361619000,"usage_in_usermode":351881000},"system_cpu_usage":8890482730000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18984960,"stats":{"active_anon":0,"active_file":4530176,"anon":6893568,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7299072,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8811,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":177826,"rx_packets":2601,"rx_errors":0,"rx_dropped":0,"tx_bytes":3655145,"tx_packets":3275,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3569596,"rx_packets":1956,"rx_errors":0,"rx_dropped":0,"tx_bytes":79009,"tx_packets":1145,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:22.099277396Z","preread":"2025-02-10T17:10:21.090532458Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":768117000,"usage_in_kernelmode":383306000,"usage_in_usermode":384810000},"system_cpu_usage":8890498310000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":742248000,"usage_in_kernelmode":373123000,"usage_in_usermode":369124000},"system_cpu_usage":8890490640000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18980864,"stats":{"active_anon":0,"active_file":4530176,"anon":7028736,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7163904,"inactive_file":6754304,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":8976,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":185548,"rx_packets":2718,"rx_errors":0,"rx_dropped":0,"tx_bytes":3819464,"tx_packets":3421,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3729433,"rx_packets":2034,"rx_errors":0,"rx_dropped":0,"tx_bytes":82111,"tx_packets":1192,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:23.103349203Z","preread":"2025-02-10T17:10:22.099277396Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":783628000,"usage_in_kernelmode":388175000,"usage_in_usermode":395452000},"system_cpu_usage":8890506070000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":768117000,"usage_in_kernelmode":383306000,"usage_in_usermode":384810000},"system_cpu_usage":8890498310000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18968576,"stats":{"active_anon":0,"active_file":4530176,"anon":7028736,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7028736,"inactive_file":6619136,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":9075,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":193072,"rx_packets":2832,"rx_errors":0,"rx_dropped":0,"tx_bytes":3932452,"tx_packets":3562,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":3838180,"rx_packets":2111,"rx_errors":0,"rx_dropped":0,"tx_bytes":85147,"tx_packets":1238,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:24.110528982Z","preread":"2025-02-10T17:10:23.103349203Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":810575000,"usage_in_kernelmode":404415000,"usage_in_usermode":406160000},"system_cpu_usage":8890513710000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":783628000,"usage_in_kernelmode":388175000,"usage_in_usermode":395452000},"system_cpu_usage":8890506070000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":19038208,"stats":{"active_anon":0,"active_file":4530176,"anon":7163904,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7299072,"inactive_file":6619136,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":9240,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":200794,"rx_packets":2949,"rx_errors":0,"rx_dropped":0,"tx_bytes":4119794,"tx_packets":3709,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":4023611,"rx_packets":2190,"rx_errors":0,"rx_dropped":0,"tx_bytes":88389,"tx_packets":1287,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:25.114794579Z","preread":"2025-02-10T17:10:24.110528982Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":18030592},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":18030592},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":838137000,"usage_in_kernelmode":421000000,"usage_in_usermode":417137000},"system_cpu_usage":8890521310000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":810575000,"usage_in_kernelmode":404415000,"usage_in_usermode":406160000},"system_cpu_usage":8890513710000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":19103744,"stats":{"active_anon":0,"active_file":4530176,"anon":7028736,"anon_thp":0,"file":11489280,"file_dirty":0,"file_mapped":9326592,"file_writeback":0,"inactive_anon":7299072,"inactive_file":6619136,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":9372,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":33,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":208648,"rx_packets":3068,"rx_errors":0,"rx_dropped":0,"tx_bytes":4256540,"tx_packets":3859,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":4153032,"rx_packets":2268,"rx_errors":0,"rx_dropped":0,"tx_bytes":91491,"tx_packets":1334,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:26.122471489Z","preread":"2025-02-10T17:10:25.114794579Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":26640384},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":26640384},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":885839000,"usage_in_kernelmode":453179000,"usage_in_usermode":432660000},"system_cpu_usage":8890528930000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":838137000,"usage_in_kernelmode":421000000,"usage_in_usermode":417137000},"system_cpu_usage":8890521310000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":24068096,"stats":{"active_anon":0,"active_file":7909376,"anon":3514368,"anon_thp":0,"file":19734528,"file_dirty":0,"file_mapped":14057472,"file_writeback":0,"inactive_anon":3919872,"inactive_file":11079680,"kernel_stack":49152,"pgactivate":528,"pgdeactivate":2260,"pgfault":9735,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":132,"pgrefill":3063,"pgscan":2417,"pgsteal":1556,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":215764,"rx_packets":3176,"rx_errors":0,"rx_dropped":0,"tx_bytes":4387539,"tx_packets":3993,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":4324351,"rx_packets":2342,"rx_errors":0,"rx_dropped":0,"tx_bytes":94677,"tx_packets":1382,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:27.128994767Z","preread":"2025-02-10T17:10:26.122471489Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":2637824},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":2637824},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":64961000,"usage_in_kernelmode":17993000,"usage_in_usermode":46968000},"system_cpu_usage":8890536670000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":885839000,"usage_in_kernelmode":453179000,"usage_in_usermode":432660000},"system_cpu_usage":8890528930000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":4128768,"stats":{"active_anon":0,"active_file":1757184,"anon":405504,"anon_thp":0,"file":2162688,"file_dirty":0,"file_mapped":811008,"file_writeback":0,"inactive_anon":405504,"inactive_file":0,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":1386,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":110,"rx_packets":1,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":110,"rx_packets":1,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:28.13708849Z","preread":"2025-02-10T17:10:27.128994767Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":124508000,"usage_in_kernelmode":33818000,"usage_in_usermode":90689000},"system_cpu_usage":8890544320000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":64961000,"usage_in_kernelmode":17993000,"usage_in_usermode":46968000},"system_cpu_usage":8890536670000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18018304,"stats":{"active_anon":0,"active_file":2568192,"anon":12029952,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":11759616,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":4818,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":306,"rx_packets":3,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":60041,"rx_packets":82,"rx_errors":0,"rx_dropped":0,"tx_bytes":5993,"tx_packets":39,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:29.141750528Z","preread":"2025-02-10T17:10:28.13708849Z","pids_stats":{"current":1,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":156615000,"usage_in_kernelmode":40126000,"usage_in_usermode":116488000},"system_cpu_usage":8890551970000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":124508000,"usage_in_kernelmode":33818000,"usage_in_usermode":90689000},"system_cpu_usage":8890544320000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":18309120,"stats":{"active_anon":0,"active_file":2568192,"anon":12029952,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":12029952,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":4950,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":1442,"rx_packets":10,"rx_errors":0,"rx_dropped":0,"tx_bytes":0,"tx_packets":0,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":215395,"rx_packets":167,"rx_errors":0,"rx_dropped":0,"tx_bytes":9095,"tx_packets":86,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:30.148160807Z","preread":"2025-02-10T17:10:29.141750528Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":187316000,"usage_in_kernelmode":60996000,"usage_in_usermode":126319000},"system_cpu_usage":8890559680000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":156615000,"usage_in_kernelmode":40126000,"usage_in_usermode":116488000},"system_cpu_usage":8890551970000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12550144,"stats":{"active_anon":0,"active_file":2568192,"anon":6758400,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":6758400,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":5379,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":15017,"rx_packets":161,"rx_errors":0,"rx_dropped":0,"tx_bytes":354751,"tx_packets":213,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":358270,"rx_packets":253,"rx_errors":0,"rx_dropped":0,"tx_bytes":12065,"tx_packets":131,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:31.15214184Z","preread":"2025-02-10T17:10:30.148160807Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":203703000,"usage_in_kernelmode":68944000,"usage_in_usermode":134758000},"system_cpu_usage":8890567480000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":187316000,"usage_in_kernelmode":60996000,"usage_in_usermode":126319000},"system_cpu_usage":8890559680000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12632064,"stats":{"active_anon":0,"active_file":2568192,"anon":6758400,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":6893568,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":5445,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":23137,"rx_packets":282,"rx_errors":0,"rx_dropped":0,"tx_bytes":471719,"tx_packets":362,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":473567,"rx_packets":332,"rx_errors":0,"rx_dropped":0,"tx_bytes":15101,"tx_packets":177,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:32.156625896Z","preread":"2025-02-10T17:10:31.15214184Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":217164000,"usage_in_kernelmode":72119000,"usage_in_usermode":145045000},"system_cpu_usage":8890575270000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":203703000,"usage_in_kernelmode":68944000,"usage_in_usermode":134758000},"system_cpu_usage":8890567480000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12607488,"stats":{"active_anon":0,"active_file":2568192,"anon":7028736,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":5643,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":31057,"rx_packets":402,"rx_errors":0,"rx_dropped":0,"tx_bytes":671318,"tx_packets":512,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":665010,"rx_packets":413,"rx_errors":0,"rx_dropped":0,"tx_bytes":18203,"tx_packets":224,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:33.159945292Z","preread":"2025-02-10T17:10:32.156625896Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":230728000,"usage_in_kernelmode":79445000,"usage_in_usermode":151283000},"system_cpu_usage":8890583020000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":217164000,"usage_in_kernelmode":72119000,"usage_in_usermode":145045000},"system_cpu_usage":8890575270000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12550144,"stats":{"active_anon":0,"active_file":2568192,"anon":7028736,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":5874,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":39177,"rx_packets":523,"rx_errors":0,"rx_dropped":0,"tx_bytes":789577,"tx_packets":661,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":781334,"rx_packets":492,"rx_errors":0,"rx_dropped":0,"tx_bytes":21239,"tx_packets":270,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:34.166003898Z","preread":"2025-02-10T17:10:33.159945292Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":244751000,"usage_in_kernelmode":82738000,"usage_in_usermode":162012000},"system_cpu_usage":8890590790000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":230728000,"usage_in_kernelmode":79445000,"usage_in_usermode":151283000},"system_cpu_usage":8890583020000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12611584,"stats":{"active_anon":0,"active_file":2568192,"anon":7028736,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6006,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":47097,"rx_packets":643,"rx_errors":0,"rx_dropped":0,"tx_bytes":982933,"tx_packets":810,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":967597,"rx_packets":571,"rx_errors":0,"rx_dropped":0,"tx_bytes":24275,"tx_packets":316,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:35.170665507Z","preread":"2025-02-10T17:10:34.166003898Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":258043000,"usage_in_kernelmode":84176000,"usage_in_usermode":173867000},"system_cpu_usage":8890598580000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":244751000,"usage_in_kernelmode":82738000,"usage_in_usermode":162012000},"system_cpu_usage":8890590790000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12644352,"stats":{"active_anon":0,"active_file":2568192,"anon":6893568,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6138,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":55191,"rx_packets":766,"rx_errors":0,"rx_dropped":0,"tx_bytes":1098489,"tx_packets":960,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1078081,"rx_packets":648,"rx_errors":0,"rx_dropped":0,"tx_bytes":27245,"tx_packets":361,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:36.17720321Z","preread":"2025-02-10T17:10:35.170665507Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":276023000,"usage_in_kernelmode":96189000,"usage_in_usermode":179834000},"system_cpu_usage":8890606360000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":258043000,"usage_in_kernelmode":84176000,"usage_in_usermode":173867000},"system_cpu_usage":8890598580000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12599296,"stats":{"active_anon":0,"active_file":2568192,"anon":6893568,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7028736,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6336,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":63111,"rx_packets":886,"rx_errors":0,"rx_dropped":0,"tx_bytes":1297854,"tx_packets":1109,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1272751,"rx_packets":726,"rx_errors":0,"rx_dropped":0,"tx_bytes":30347,"tx_packets":408,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:37.179436376Z","preread":"2025-02-10T17:10:36.17720321Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":302266000,"usage_in_kernelmode":111416000,"usage_in_usermode":190849000},"system_cpu_usage":8890614050000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":276023000,"usage_in_kernelmode":96189000,"usage_in_usermode":179834000},"system_cpu_usage":8890606360000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12558336,"stats":{"active_anon":0,"active_file":2568192,"anon":6758400,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7028736,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6402,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":71031,"rx_packets":1006,"rx_errors":0,"rx_dropped":0,"tx_bytes":1416900,"tx_packets":1259,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1387475,"rx_packets":804,"rx_errors":0,"rx_dropped":0,"tx_bytes":33659,"tx_packets":458,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:38.184344774Z","preread":"2025-02-10T17:10:37.179436376Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":321901000,"usage_in_kernelmode":117996000,"usage_in_usermode":203904000},"system_cpu_usage":8890621860000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":302266000,"usage_in_kernelmode":111416000,"usage_in_usermode":190849000},"system_cpu_usage":8890614050000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12595200,"stats":{"active_anon":0,"active_file":2568192,"anon":6893568,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6633,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":80497,"rx_packets":1129,"rx_errors":0,"rx_dropped":0,"tx_bytes":1609439,"tx_packets":1408,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1576862,"rx_packets":885,"rx_errors":0,"rx_dropped":0,"tx_bytes":36629,"tx_packets":503,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:39.198019555Z","preread":"2025-02-10T17:10:38.184344774Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":347344000,"usage_in_kernelmode":137356000,"usage_in_usermode":209987000},"system_cpu_usage":8890629710000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":321901000,"usage_in_kernelmode":117996000,"usage_in_usermode":203904000},"system_cpu_usage":8890621860000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12648448,"stats":{"active_anon":0,"active_file":2568192,"anon":6893568,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6699,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":88549,"rx_packets":1251,"rx_errors":0,"rx_dropped":0,"tx_bytes":1748295,"tx_packets":1560,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1714532,"rx_packets":963,"rx_errors":0,"rx_dropped":0,"tx_bytes":39797,"tx_packets":551,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:40.205677581Z","preread":"2025-02-10T17:10:39.198019555Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":376717000,"usage_in_kernelmode":161582000,"usage_in_usermode":215134000},"system_cpu_usage":8890637420000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":347344000,"usage_in_kernelmode":137356000,"usage_in_usermode":209987000},"system_cpu_usage":8890629710000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12546048,"stats":{"active_anon":0,"active_file":2568192,"anon":7028736,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7299072,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":6963,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":96601,"rx_packets":1373,"rx_errors":0,"rx_dropped":0,"tx_bytes":1933212,"tx_packets":1711,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":1890493,"rx_packets":1041,"rx_errors":0,"rx_dropped":0,"tx_bytes":42833,"tx_packets":597,"tx_errors":0,"tx_dropped":0}}}
{"read":"2025-02-10T17:10:41.215156874Z","preread":"2025-02-10T17:10:40.205677581Z","pids_stats":{"current":3,"limit":18064},"blkio_stats":{"io_service_bytes_recursive":[{"major":259,"minor":0,"op":"read","value":5046272},{"major":259,"minor":0,"op":"write","value":0},{"major":254,"minor":0,"op":"read","value":5046272},{"major":254,"minor":0,"op":"write","value":0}],"io_serviced_recursive":null,"io_queue_recursive":null,"io_service_time_recursive":null,"io_wait_time_recursive":null,"io_merged_recursive":null,"io_time_recursive":null,"sectors_recursive":null},"num_procs":0,"storage_stats":{},"cpu_stats":{"cpu_usage":{"total_usage":395004000,"usage_in_kernelmode":172711000,"usage_in_usermode":222293000},"system_cpu_usage":8890645170000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"precpu_stats":{"cpu_usage":{"total_usage":376717000,"usage_in_kernelmode":161582000,"usage_in_usermode":215134000},"system_cpu_usage":8890637420000000,"online_cpus":8,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":12496896,"stats":{"active_anon":0,"active_file":2568192,"anon":7028736,"anon_thp":0,"file":4595712,"file_dirty":0,"file_mapped":2568192,"file_writeback":0,"inactive_anon":7163904,"inactive_file":1892352,"kernel_stack":49152,"pgactivate":0,"pgdeactivate":0,"pgfault":7062,"pglazyfree":0,"pglazyfreed":0,"pgmajfault":0,"pgrefill":0,"pgscan":0,"pgsteal":0,"shmem":0,"slab":0,"slab_reclaimable":0,"slab_unreclaimable":0,"sock":0,"thp_collapse_alloc":0,"thp_fault_alloc":0,"unevictable":0,"workingset_activate":0,"workingset_nodereclaim":0,"workingset_refault":0},"limit":15815278592},"name":"/termstream-1940bf37-63f7-45d9-9771-c18ab7f6653b-multiplexer-0","id":"d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39","networks":{"eth0":{"rx_bytes":104521,"rx_packets":1493,"rx_errors":0,"rx_dropped":0,"tx_bytes":2049375,"tx_packets":1861,"tx_errors":0,"tx_dropped":0},"eth1":{"rx_bytes":2002352,"rx_packets":1119,"rx_errors":0,"rx_dropped":0,"tx_bytes":45869,"tx_packets":643,"tx_errors":0,"tx_dropped":0}}}

View File

@ -1,5 +1,7 @@
package domain
import "time"
// AppState holds application state.
type AppState struct {
Source Source
@ -15,10 +17,18 @@ type Source struct {
RTMPInternalURL string
}
type DestinationState int
const (
DestinationStateOffAir DestinationState = iota
DestinationStateStarting
DestinationStateLive
)
// Destination is a single destination.
type Destination struct {
Container Container
Live bool
State DestinationState
URL string
}
@ -34,4 +44,6 @@ type Container struct {
MemoryUsageBytes uint64
RxRate int
TxRate int
RxSince time.Time
RestartCount int
}

View File

@ -33,7 +33,7 @@ func TestMultiplexer(t *testing.T) {
assert.False(t, running)
srv := mediaserver.StartActor(ctx, mediaserver.StartActorParams{
RTMPPort: 1936,
RTMPPort: 19350,
APIPort: 9998,
FetchIngressStateInterval: 250 * time.Millisecond,
ContainerClient: containerClient,
@ -65,16 +65,16 @@ func TestMultiplexer(t *testing.T) {
requireListeners(t, srv, 0)
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test1")
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test2")
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test3")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test1")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test2")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test3")
requireListeners(t, srv, 3)
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test3")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test3")
requireListeners(t, srv, 2)
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test2")
mp.ToggleDestination("rtmp://mediaserver:1935/destination/test1")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test2")
mp.ToggleDestination("rtmp://mediaserver:19350/destination/test1")
requireListeners(t, srv, 0)
}

View File

@ -7,6 +7,7 @@ import (
"log/slog"
"strconv"
"sync"
"time"
typescontainer "github.com/docker/docker/api/types/container"
@ -101,6 +102,7 @@ func (a *Actor) ToggleDestination(url string) {
},
HostConfig: &typescontainer.HostConfig{
NetworkMode: "default",
RestartPolicy: typescontainer.RestartPolicy{Name: "always"},
},
NetworkCountConfig: container.NetworkCountConfig{Rx: "eth1", Tx: "eth1"},
})
@ -132,7 +134,16 @@ func (a *Actor) destLoop(url string, containerStateC <-chan domain.Container, er
select {
case containerState := <-containerStateC:
state.Container = containerState
state.Live = containerState.State == "running"
if containerState.State == "running" {
if hasElapsedSince(5*time.Second, containerState.RxSince) {
state.State = domain.DestinationStateLive
} else {
state.State = domain.DestinationStateStarting
}
} else {
state.State = domain.DestinationStateOffAir
}
sendState()
case err := <-errC:
// TODO: error handling
@ -169,3 +180,13 @@ func (a *Actor) actorLoop() {
act()
}
}
// hasElapsedSince returns true if the duration has elapsed since the given
// time. If the provided time is zero, the function returns false.
func hasElapsedSince(d time.Duration, t time.Time) bool {
if t.IsZero() {
return false
}
return d < time.Since(t)
}

View File

@ -179,7 +179,8 @@ func (a *Actor) redrawFromState(state domain.AppState) {
for i, dest := range state.Destinations {
a.destView.SetCell(i+1, 0, tview.NewTableCell(dest.URL))
if dest.Live {
switch dest.State {
case domain.DestinationStateLive:
a.destView.SetCell(
i+1,
1,
@ -193,13 +194,21 @@ func (a *Actor) redrawFromState(state domain.AppState) {
Background(tcell.ColorGreen),
),
)
} else {
case domain.DestinationStateStarting:
label := "starting"
if dest.Container.RestartCount > 0 {
label = fmt.Sprintf("restarting (%d)", dest.Container.RestartCount)
}
a.destView.SetCell(i+1, 1, tview.NewTableCell("[white]"+label))
case domain.DestinationStateOffAir:
a.destView.SetCell(i+1, 1, tview.NewTableCell("[white]off-air"))
default:
panic("unknown destination state")
}
a.destView.SetCell(i+1, 2, tview.NewTableCell("[white]"+cmp.Or(dest.Container.State, dash)))
healthState := dash
if dest.Container.State == "running" {
if dest.State == domain.DestinationStateLive {
healthState = "healthy"
}
a.destView.SetCell(i+1, 3, tview.NewTableCell("[white]"+healthState))

View File

@ -1,6 +1,7 @@
package testhelpers
import (
"context"
"log/slog"
"testing"
@ -17,11 +18,19 @@ func ChanDiscard[T any](ch <-chan T) {
}
// ChanRequireNoError consumes a channel and asserts that no error is received.
func ChanRequireNoError(t testing.TB, ch <-chan error) {
func ChanRequireNoError(ctx context.Context, t testing.TB, ch <-chan error) {
t.Helper()
go func() {
require.NoError(t, <-ch)
for {
select {
case err := <-ch:
require.NoError(t, err)
return
case <-ctx.Done():
return
}
}
}()
}