Search in sources :

Example 1 with FsInfo

use of org.elasticsearch.monitor.fs.FsInfo in project elasticsearch by elastic.

the class DiskUsageTests method testFillDiskUsage.

public void testFillDiskUsage() {
    ImmutableOpenMap.Builder<String, DiskUsage> newLeastAvaiableUsages = ImmutableOpenMap.builder();
    ImmutableOpenMap.Builder<String, DiskUsage> newMostAvaiableUsages = ImmutableOpenMap.builder();
    FsInfo.Path[] node1FSInfo = new FsInfo.Path[] { new FsInfo.Path("/middle", "/dev/sda", 100, 90, 80), new FsInfo.Path("/least", "/dev/sdb", 200, 190, 70), new FsInfo.Path("/most", "/dev/sdc", 300, 290, 280) };
    FsInfo.Path[] node2FSInfo = new FsInfo.Path[] { new FsInfo.Path("/least_most", "/dev/sda", 100, 90, 80) };
    FsInfo.Path[] node3FSInfo = new FsInfo.Path[] { new FsInfo.Path("/least", "/dev/sda", 100, 90, 70), new FsInfo.Path("/most", "/dev/sda", 100, 90, 80) };
    List<NodeStats> nodeStats = Arrays.asList(new NodeStats(new DiscoveryNode("node_1", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT), 0, null, null, null, null, null, new FsInfo(0, null, node1FSInfo), null, null, null, null, null, null), new NodeStats(new DiscoveryNode("node_2", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT), 0, null, null, null, null, null, new FsInfo(0, null, node2FSInfo), null, null, null, null, null, null), new NodeStats(new DiscoveryNode("node_3", buildNewFakeTransportAddress(), emptyMap(), emptySet(), Version.CURRENT), 0, null, null, null, null, null, new FsInfo(0, null, node3FSInfo), null, null, null, null, null, null));
    InternalClusterInfoService.fillDiskUsagePerNode(logger, nodeStats, newLeastAvaiableUsages, newMostAvaiableUsages);
    DiskUsage leastNode_1 = newLeastAvaiableUsages.get("node_1");
    DiskUsage mostNode_1 = newMostAvaiableUsages.get("node_1");
    assertDiskUsage(mostNode_1, node1FSInfo[2]);
    assertDiskUsage(leastNode_1, node1FSInfo[1]);
    DiskUsage leastNode_2 = newLeastAvaiableUsages.get("node_2");
    DiskUsage mostNode_2 = newMostAvaiableUsages.get("node_2");
    assertDiskUsage(leastNode_2, node2FSInfo[0]);
    assertDiskUsage(mostNode_2, node2FSInfo[0]);
    DiskUsage leastNode_3 = newLeastAvaiableUsages.get("node_3");
    DiskUsage mostNode_3 = newMostAvaiableUsages.get("node_3");
    assertDiskUsage(leastNode_3, node3FSInfo[0]);
    assertDiskUsage(mostNode_3, node3FSInfo[1]);
}
Also used : Path(java.nio.file.Path) ShardPath(org.elasticsearch.index.shard.ShardPath) NodeStats(org.elasticsearch.action.admin.cluster.node.stats.NodeStats) FsInfo(org.elasticsearch.monitor.fs.FsInfo) DiscoveryNode(org.elasticsearch.cluster.node.DiscoveryNode) ImmutableOpenMap(org.elasticsearch.common.collect.ImmutableOpenMap)

Example 2 with FsInfo

use of org.elasticsearch.monitor.fs.FsInfo in project crate by crate.

the class SysNodeChecksTest method testGetLeastAvailablePathForDiskWatermarkChecks.

@Test
public void testGetLeastAvailablePathForDiskWatermarkChecks() throws IOException {
    FsProbe fsProbe = mock(FsProbe.class);
    FsInfo fsInfo = mock(FsInfo.class);
    when(fsProbe.stats()).thenReturn(fsInfo);
    when(fsInfo.iterator()).thenReturn(ImmutableList.of(new FsInfo.Path("/middle", "/dev/sda", 300, 170, 160), new FsInfo.Path("/most", "/dev/sdc", 300, 150, 140)).iterator());
    DiskWatermarkNodesSysCheck diskWatermark = new LowDiskWatermarkNodesSysCheck(clusterService, mock(Provider.class), fsProbe);
    assertThat(diskWatermark.getLeastAvailablePath().getAvailable().getBytes(), is(140L));
}
Also used : FsInfo(org.elasticsearch.monitor.fs.FsInfo) FsProbe(org.elasticsearch.monitor.fs.FsProbe) Provider(org.elasticsearch.common.inject.Provider) Test(org.junit.Test) CrateUnitTest(io.crate.test.integration.CrateUnitTest)

Example 3 with FsInfo

use of org.elasticsearch.monitor.fs.FsInfo in project elasticsearch by elastic.

the class RestNodesAction method buildTable.

private Table buildTable(boolean fullId, RestRequest req, ClusterStateResponse state, NodesInfoResponse nodesInfo, NodesStatsResponse nodesStats) {
    DiscoveryNodes nodes = state.getState().nodes();
    String masterId = nodes.getMasterNodeId();
    Table table = getTableWithHeader(req);
    for (DiscoveryNode node : nodes) {
        NodeInfo info = nodesInfo.getNodesMap().get(node.getId());
        NodeStats stats = nodesStats.getNodesMap().get(node.getId());
        JvmInfo jvmInfo = info == null ? null : info.getJvm();
        JvmStats jvmStats = stats == null ? null : stats.getJvm();
        FsInfo fsInfo = stats == null ? null : stats.getFs();
        OsStats osStats = stats == null ? null : stats.getOs();
        ProcessStats processStats = stats == null ? null : stats.getProcess();
        NodeIndicesStats indicesStats = stats == null ? null : stats.getIndices();
        table.startRow();
        table.addCell(fullId ? node.getId() : Strings.substring(node.getId(), 0, 4));
        table.addCell(info == null ? null : info.getProcess().getId());
        table.addCell(node.getHostAddress());
        table.addCell(node.getAddress().address().getPort());
        final HttpInfo httpInfo = info == null ? null : info.getHttp();
        if (httpInfo != null) {
            TransportAddress transportAddress = httpInfo.getAddress().publishAddress();
            table.addCell(NetworkAddress.format(transportAddress.address()));
        } else {
            table.addCell("-");
        }
        table.addCell(node.getVersion().toString());
        table.addCell(info == null ? null : info.getBuild().shortHash());
        table.addCell(jvmInfo == null ? null : jvmInfo.version());
        table.addCell(fsInfo == null ? null : fsInfo.getTotal().getAvailable());
        table.addCell(jvmStats == null ? null : jvmStats.getMem().getHeapUsed());
        table.addCell(jvmStats == null ? null : jvmStats.getMem().getHeapUsedPercent());
        table.addCell(jvmInfo == null ? null : jvmInfo.getMem().getHeapMax());
        table.addCell(osStats == null ? null : osStats.getMem() == null ? null : osStats.getMem().getUsed());
        table.addCell(osStats == null ? null : osStats.getMem() == null ? null : osStats.getMem().getUsedPercent());
        table.addCell(osStats == null ? null : osStats.getMem() == null ? null : osStats.getMem().getTotal());
        table.addCell(processStats == null ? null : processStats.getOpenFileDescriptors());
        table.addCell(processStats == null ? null : calculatePercentage(processStats.getOpenFileDescriptors(), processStats.getMaxFileDescriptors()));
        table.addCell(processStats == null ? null : processStats.getMaxFileDescriptors());
        table.addCell(osStats == null ? null : Short.toString(osStats.getCpu().getPercent()));
        boolean hasLoadAverage = osStats != null && osStats.getCpu().getLoadAverage() != null;
        table.addCell(!hasLoadAverage || osStats.getCpu().getLoadAverage()[0] == -1 ? null : String.format(Locale.ROOT, "%.2f", osStats.getCpu().getLoadAverage()[0]));
        table.addCell(!hasLoadAverage || osStats.getCpu().getLoadAverage()[1] == -1 ? null : String.format(Locale.ROOT, "%.2f", osStats.getCpu().getLoadAverage()[1]));
        table.addCell(!hasLoadAverage || osStats.getCpu().getLoadAverage()[2] == -1 ? null : String.format(Locale.ROOT, "%.2f", osStats.getCpu().getLoadAverage()[2]));
        table.addCell(jvmStats == null ? null : jvmStats.getUptime());
        final String roles;
        if (node.getRoles().isEmpty()) {
            roles = "-";
        } else {
            roles = node.getRoles().stream().map(DiscoveryNode.Role::getAbbreviation).collect(Collectors.joining());
        }
        table.addCell(roles);
        table.addCell(masterId == null ? "x" : masterId.equals(node.getId()) ? "*" : "-");
        table.addCell(node.getName());
        CompletionStats completionStats = indicesStats == null ? null : stats.getIndices().getCompletion();
        table.addCell(completionStats == null ? null : completionStats.getSize());
        FieldDataStats fdStats = indicesStats == null ? null : stats.getIndices().getFieldData();
        table.addCell(fdStats == null ? null : fdStats.getMemorySize());
        table.addCell(fdStats == null ? null : fdStats.getEvictions());
        QueryCacheStats fcStats = indicesStats == null ? null : indicesStats.getQueryCache();
        table.addCell(fcStats == null ? null : fcStats.getMemorySize());
        table.addCell(fcStats == null ? null : fcStats.getEvictions());
        RequestCacheStats qcStats = indicesStats == null ? null : indicesStats.getRequestCache();
        table.addCell(qcStats == null ? null : qcStats.getMemorySize());
        table.addCell(qcStats == null ? null : qcStats.getEvictions());
        table.addCell(qcStats == null ? null : qcStats.getHitCount());
        table.addCell(qcStats == null ? null : qcStats.getMissCount());
        FlushStats flushStats = indicesStats == null ? null : indicesStats.getFlush();
        table.addCell(flushStats == null ? null : flushStats.getTotal());
        table.addCell(flushStats == null ? null : flushStats.getTotalTime());
        GetStats getStats = indicesStats == null ? null : indicesStats.getGet();
        table.addCell(getStats == null ? null : getStats.current());
        table.addCell(getStats == null ? null : getStats.getTime());
        table.addCell(getStats == null ? null : getStats.getCount());
        table.addCell(getStats == null ? null : getStats.getExistsTime());
        table.addCell(getStats == null ? null : getStats.getExistsCount());
        table.addCell(getStats == null ? null : getStats.getMissingTime());
        table.addCell(getStats == null ? null : getStats.getMissingCount());
        IndexingStats indexingStats = indicesStats == null ? null : indicesStats.getIndexing();
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getDeleteCurrent());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getDeleteTime());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getDeleteCount());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getIndexCurrent());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getIndexTime());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getIndexCount());
        table.addCell(indexingStats == null ? null : indexingStats.getTotal().getIndexFailedCount());
        MergeStats mergeStats = indicesStats == null ? null : indicesStats.getMerge();
        table.addCell(mergeStats == null ? null : mergeStats.getCurrent());
        table.addCell(mergeStats == null ? null : mergeStats.getCurrentNumDocs());
        table.addCell(mergeStats == null ? null : mergeStats.getCurrentSize());
        table.addCell(mergeStats == null ? null : mergeStats.getTotal());
        table.addCell(mergeStats == null ? null : mergeStats.getTotalNumDocs());
        table.addCell(mergeStats == null ? null : mergeStats.getTotalSize());
        table.addCell(mergeStats == null ? null : mergeStats.getTotalTime());
        RefreshStats refreshStats = indicesStats == null ? null : indicesStats.getRefresh();
        table.addCell(refreshStats == null ? null : refreshStats.getTotal());
        table.addCell(refreshStats == null ? null : refreshStats.getTotalTime());
        table.addCell(refreshStats == null ? null : refreshStats.getListeners());
        ScriptStats scriptStats = stats == null ? null : stats.getScriptStats();
        table.addCell(scriptStats == null ? null : scriptStats.getCompilations());
        table.addCell(scriptStats == null ? null : scriptStats.getCacheEvictions());
        SearchStats searchStats = indicesStats == null ? null : indicesStats.getSearch();
        table.addCell(searchStats == null ? null : searchStats.getTotal().getFetchCurrent());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getFetchTime());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getFetchCount());
        table.addCell(searchStats == null ? null : searchStats.getOpenContexts());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getQueryCurrent());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getQueryTime());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getQueryCount());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getScrollCurrent());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getScrollTime());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getScrollCount());
        SegmentsStats segmentsStats = indicesStats == null ? null : indicesStats.getSegments();
        table.addCell(segmentsStats == null ? null : segmentsStats.getCount());
        table.addCell(segmentsStats == null ? null : segmentsStats.getMemory());
        table.addCell(segmentsStats == null ? null : segmentsStats.getIndexWriterMemory());
        table.addCell(segmentsStats == null ? null : segmentsStats.getVersionMapMemory());
        table.addCell(segmentsStats == null ? null : segmentsStats.getBitsetMemory());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getSuggestCurrent());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getSuggestTime());
        table.addCell(searchStats == null ? null : searchStats.getTotal().getSuggestCount());
        table.endRow();
    }
    return table;
}
Also used : DiscoveryNode(org.elasticsearch.cluster.node.DiscoveryNode) JvmInfo(org.elasticsearch.monitor.jvm.JvmInfo) RefreshStats(org.elasticsearch.index.refresh.RefreshStats) TransportAddress(org.elasticsearch.common.transport.TransportAddress) GetStats(org.elasticsearch.index.get.GetStats) SegmentsStats(org.elasticsearch.index.engine.SegmentsStats) HttpInfo(org.elasticsearch.http.HttpInfo) NodeStats(org.elasticsearch.action.admin.cluster.node.stats.NodeStats) FsInfo(org.elasticsearch.monitor.fs.FsInfo) FlushStats(org.elasticsearch.index.flush.FlushStats) QueryCacheStats(org.elasticsearch.index.cache.query.QueryCacheStats) DiscoveryNodes(org.elasticsearch.cluster.node.DiscoveryNodes) FieldDataStats(org.elasticsearch.index.fielddata.FieldDataStats) JvmStats(org.elasticsearch.monitor.jvm.JvmStats) ScriptStats(org.elasticsearch.script.ScriptStats) ProcessStats(org.elasticsearch.monitor.process.ProcessStats) Table(org.elasticsearch.common.Table) IndexingStats(org.elasticsearch.index.shard.IndexingStats) OsStats(org.elasticsearch.monitor.os.OsStats) SearchStats(org.elasticsearch.index.search.stats.SearchStats) NodeInfo(org.elasticsearch.action.admin.cluster.node.info.NodeInfo) MergeStats(org.elasticsearch.index.merge.MergeStats) NodeIndicesStats(org.elasticsearch.indices.NodeIndicesStats) RequestCacheStats(org.elasticsearch.index.cache.request.RequestCacheStats) CompletionStats(org.elasticsearch.search.suggest.completion.CompletionStats)

Example 4 with FsInfo

use of org.elasticsearch.monitor.fs.FsInfo in project elasticsearch by elastic.

the class NodeStatsTests method createNodeStats.

private static NodeStats createNodeStats() {
    DiscoveryNode node = new DiscoveryNode("test_node", buildNewFakeTransportAddress(), emptyMap(), emptySet(), VersionUtils.randomVersion(random()));
    OsStats osStats = null;
    if (frequently()) {
        double[] loadAverages = new double[3];
        for (int i = 0; i < 3; i++) {
            loadAverages[i] = randomBoolean() ? randomDouble() : -1;
        }
        osStats = new OsStats(System.currentTimeMillis(), new OsStats.Cpu(randomShort(), loadAverages), new OsStats.Mem(randomLong(), randomLong()), new OsStats.Swap(randomLong(), randomLong()), new OsStats.Cgroup(randomAsciiOfLength(8), randomNonNegativeLong(), randomAsciiOfLength(8), randomNonNegativeLong(), randomNonNegativeLong(), new OsStats.Cgroup.CpuStat(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong())));
    }
    ProcessStats processStats = frequently() ? new ProcessStats(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), new ProcessStats.Cpu(randomShort(), randomNonNegativeLong()), new ProcessStats.Mem(randomNonNegativeLong())) : null;
    JvmStats jvmStats = null;
    if (frequently()) {
        int numMemoryPools = randomIntBetween(0, 10);
        List<JvmStats.MemoryPool> memoryPools = new ArrayList<>(numMemoryPools);
        for (int i = 0; i < numMemoryPools; i++) {
            memoryPools.add(new JvmStats.MemoryPool(randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong()));
        }
        JvmStats.Threads threads = new JvmStats.Threads(randomIntBetween(1, 1000), randomIntBetween(1, 1000));
        int numGarbageCollectors = randomIntBetween(0, 10);
        JvmStats.GarbageCollector[] garbageCollectorsArray = new JvmStats.GarbageCollector[numGarbageCollectors];
        for (int i = 0; i < numGarbageCollectors; i++) {
            garbageCollectorsArray[i] = new JvmStats.GarbageCollector(randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong());
        }
        JvmStats.GarbageCollectors garbageCollectors = new JvmStats.GarbageCollectors(garbageCollectorsArray);
        int numBufferPools = randomIntBetween(0, 10);
        List<JvmStats.BufferPool> bufferPoolList = new ArrayList<>();
        for (int i = 0; i < numBufferPools; i++) {
            bufferPoolList.add(new JvmStats.BufferPool(randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong()));
        }
        JvmStats.Classes classes = new JvmStats.Classes(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong());
        jvmStats = frequently() ? new JvmStats(randomNonNegativeLong(), randomNonNegativeLong(), new JvmStats.Mem(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), memoryPools), threads, garbageCollectors, randomBoolean() ? Collections.emptyList() : bufferPoolList, classes) : null;
    }
    ThreadPoolStats threadPoolStats = null;
    if (frequently()) {
        int numThreadPoolStats = randomIntBetween(0, 10);
        List<ThreadPoolStats.Stats> threadPoolStatsList = new ArrayList<>();
        for (int i = 0; i < numThreadPoolStats; i++) {
            threadPoolStatsList.add(new ThreadPoolStats.Stats(randomAsciiOfLengthBetween(3, 10), randomIntBetween(1, 1000), randomIntBetween(1, 1000), randomIntBetween(1, 1000), randomNonNegativeLong(), randomIntBetween(1, 1000), randomIntBetween(1, 1000)));
        }
        threadPoolStats = new ThreadPoolStats(threadPoolStatsList);
    }
    FsInfo fsInfo = null;
    if (frequently()) {
        int numDeviceStats = randomIntBetween(0, 10);
        FsInfo.DeviceStats[] deviceStatsArray = new FsInfo.DeviceStats[numDeviceStats];
        for (int i = 0; i < numDeviceStats; i++) {
            FsInfo.DeviceStats previousDeviceStats = randomBoolean() ? null : new FsInfo.DeviceStats(randomInt(), randomInt(), randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), null);
            deviceStatsArray[i] = new FsInfo.DeviceStats(randomInt(), randomInt(), randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), previousDeviceStats);
        }
        FsInfo.IoStats ioStats = new FsInfo.IoStats(deviceStatsArray);
        int numPaths = randomIntBetween(0, 10);
        FsInfo.Path[] paths = new FsInfo.Path[numPaths];
        for (int i = 0; i < numPaths; i++) {
            paths[i] = new FsInfo.Path(randomAsciiOfLengthBetween(3, 10), randomBoolean() ? randomAsciiOfLengthBetween(3, 10) : null, randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong());
        }
        fsInfo = new FsInfo(randomNonNegativeLong(), ioStats, paths);
    }
    TransportStats transportStats = frequently() ? new TransportStats(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong()) : null;
    HttpStats httpStats = frequently() ? new HttpStats(randomNonNegativeLong(), randomNonNegativeLong()) : null;
    AllCircuitBreakerStats allCircuitBreakerStats = null;
    if (frequently()) {
        int numCircuitBreakerStats = randomIntBetween(0, 10);
        CircuitBreakerStats[] circuitBreakerStatsArray = new CircuitBreakerStats[numCircuitBreakerStats];
        for (int i = 0; i < numCircuitBreakerStats; i++) {
            circuitBreakerStatsArray[i] = new CircuitBreakerStats(randomAsciiOfLengthBetween(3, 10), randomNonNegativeLong(), randomNonNegativeLong(), randomDouble(), randomNonNegativeLong());
        }
        allCircuitBreakerStats = new AllCircuitBreakerStats(circuitBreakerStatsArray);
    }
    ScriptStats scriptStats = frequently() ? new ScriptStats(randomNonNegativeLong(), randomNonNegativeLong()) : null;
    DiscoveryStats discoveryStats = frequently() ? new DiscoveryStats(randomBoolean() ? new PendingClusterStateStats(randomInt(), randomInt(), randomInt()) : null) : null;
    IngestStats ingestStats = null;
    if (frequently()) {
        IngestStats.Stats totalStats = new IngestStats.Stats(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong());
        int numStatsPerPipeline = randomIntBetween(0, 10);
        Map<String, IngestStats.Stats> statsPerPipeline = new HashMap<>();
        for (int i = 0; i < numStatsPerPipeline; i++) {
            statsPerPipeline.put(randomAsciiOfLengthBetween(3, 10), new IngestStats.Stats(randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong(), randomNonNegativeLong()));
        }
        ingestStats = new IngestStats(totalStats, statsPerPipeline);
    }
    //TODO NodeIndicesStats are not tested here, way too complicated to create, also they need to be migrated to Writeable yet
    return new NodeStats(node, randomNonNegativeLong(), null, osStats, processStats, jvmStats, threadPoolStats, fsInfo, transportStats, httpStats, allCircuitBreakerStats, scriptStats, discoveryStats, ingestStats);
}
Also used : HashMap(java.util.HashMap) DiscoveryStats(org.elasticsearch.discovery.DiscoveryStats) ArrayList(java.util.ArrayList) ThreadPoolStats(org.elasticsearch.threadpool.ThreadPoolStats) TransportStats(org.elasticsearch.transport.TransportStats) CircuitBreakerStats(org.elasticsearch.indices.breaker.CircuitBreakerStats) AllCircuitBreakerStats(org.elasticsearch.indices.breaker.AllCircuitBreakerStats) ScriptStats(org.elasticsearch.script.ScriptStats) PendingClusterStateStats(org.elasticsearch.discovery.zen.PendingClusterStateStats) IngestStats(org.elasticsearch.ingest.IngestStats) PendingClusterStateStats(org.elasticsearch.discovery.zen.PendingClusterStateStats) IngestStats(org.elasticsearch.ingest.IngestStats) CircuitBreakerStats(org.elasticsearch.indices.breaker.CircuitBreakerStats) HttpStats(org.elasticsearch.http.HttpStats) AllCircuitBreakerStats(org.elasticsearch.indices.breaker.AllCircuitBreakerStats) ThreadPoolStats(org.elasticsearch.threadpool.ThreadPoolStats) DiscoveryStats(org.elasticsearch.discovery.DiscoveryStats) ScriptStats(org.elasticsearch.script.ScriptStats) OsStats(org.elasticsearch.monitor.os.OsStats) JvmStats(org.elasticsearch.monitor.jvm.JvmStats) ProcessStats(org.elasticsearch.monitor.process.ProcessStats) TransportStats(org.elasticsearch.transport.TransportStats) DiscoveryNode(org.elasticsearch.cluster.node.DiscoveryNode) FsInfo(org.elasticsearch.monitor.fs.FsInfo) HttpStats(org.elasticsearch.http.HttpStats) JvmStats(org.elasticsearch.monitor.jvm.JvmStats) ProcessStats(org.elasticsearch.monitor.process.ProcessStats) OsStats(org.elasticsearch.monitor.os.OsStats) AllCircuitBreakerStats(org.elasticsearch.indices.breaker.AllCircuitBreakerStats)

Example 5 with FsInfo

use of org.elasticsearch.monitor.fs.FsInfo in project elasticsearch by elastic.

the class NodeStatsTests method testSerialization.

public void testSerialization() throws IOException {
    NodeStats nodeStats = createNodeStats();
    try (BytesStreamOutput out = new BytesStreamOutput()) {
        nodeStats.writeTo(out);
        try (StreamInput in = out.bytes().streamInput()) {
            NodeStats deserializedNodeStats = NodeStats.readNodeStats(in);
            assertEquals(nodeStats.getNode(), deserializedNodeStats.getNode());
            assertEquals(nodeStats.getTimestamp(), deserializedNodeStats.getTimestamp());
            if (nodeStats.getOs() == null) {
                assertNull(deserializedNodeStats.getOs());
            } else {
                assertEquals(nodeStats.getOs().getTimestamp(), deserializedNodeStats.getOs().getTimestamp());
                assertEquals(nodeStats.getOs().getSwap().getFree(), deserializedNodeStats.getOs().getSwap().getFree());
                assertEquals(nodeStats.getOs().getSwap().getTotal(), deserializedNodeStats.getOs().getSwap().getTotal());
                assertEquals(nodeStats.getOs().getSwap().getUsed(), deserializedNodeStats.getOs().getSwap().getUsed());
                assertEquals(nodeStats.getOs().getMem().getFree(), deserializedNodeStats.getOs().getMem().getFree());
                assertEquals(nodeStats.getOs().getMem().getTotal(), deserializedNodeStats.getOs().getMem().getTotal());
                assertEquals(nodeStats.getOs().getMem().getUsed(), deserializedNodeStats.getOs().getMem().getUsed());
                assertEquals(nodeStats.getOs().getMem().getFreePercent(), deserializedNodeStats.getOs().getMem().getFreePercent());
                assertEquals(nodeStats.getOs().getMem().getUsedPercent(), deserializedNodeStats.getOs().getMem().getUsedPercent());
                assertEquals(nodeStats.getOs().getCpu().getPercent(), deserializedNodeStats.getOs().getCpu().getPercent());
                assertEquals(nodeStats.getOs().getCgroup().getCpuAcctControlGroup(), deserializedNodeStats.getOs().getCgroup().getCpuAcctControlGroup());
                assertEquals(nodeStats.getOs().getCgroup().getCpuAcctUsageNanos(), deserializedNodeStats.getOs().getCgroup().getCpuAcctUsageNanos());
                assertEquals(nodeStats.getOs().getCgroup().getCpuControlGroup(), deserializedNodeStats.getOs().getCgroup().getCpuControlGroup());
                assertEquals(nodeStats.getOs().getCgroup().getCpuCfsPeriodMicros(), deserializedNodeStats.getOs().getCgroup().getCpuCfsPeriodMicros());
                assertEquals(nodeStats.getOs().getCgroup().getCpuCfsQuotaMicros(), deserializedNodeStats.getOs().getCgroup().getCpuCfsQuotaMicros());
                assertEquals(nodeStats.getOs().getCgroup().getCpuStat().getNumberOfElapsedPeriods(), deserializedNodeStats.getOs().getCgroup().getCpuStat().getNumberOfElapsedPeriods());
                assertEquals(nodeStats.getOs().getCgroup().getCpuStat().getNumberOfTimesThrottled(), deserializedNodeStats.getOs().getCgroup().getCpuStat().getNumberOfTimesThrottled());
                assertEquals(nodeStats.getOs().getCgroup().getCpuStat().getTimeThrottledNanos(), deserializedNodeStats.getOs().getCgroup().getCpuStat().getTimeThrottledNanos());
                assertArrayEquals(nodeStats.getOs().getCpu().getLoadAverage(), deserializedNodeStats.getOs().getCpu().getLoadAverage(), 0);
            }
            if (nodeStats.getProcess() == null) {
                assertNull(deserializedNodeStats.getProcess());
            } else {
                assertEquals(nodeStats.getProcess().getTimestamp(), deserializedNodeStats.getProcess().getTimestamp());
                assertEquals(nodeStats.getProcess().getCpu().getTotal(), deserializedNodeStats.getProcess().getCpu().getTotal());
                assertEquals(nodeStats.getProcess().getCpu().getPercent(), deserializedNodeStats.getProcess().getCpu().getPercent());
                assertEquals(nodeStats.getProcess().getMem().getTotalVirtual(), deserializedNodeStats.getProcess().getMem().getTotalVirtual());
                assertEquals(nodeStats.getProcess().getMaxFileDescriptors(), deserializedNodeStats.getProcess().getMaxFileDescriptors());
                assertEquals(nodeStats.getProcess().getOpenFileDescriptors(), deserializedNodeStats.getProcess().getOpenFileDescriptors());
            }
            JvmStats jvm = nodeStats.getJvm();
            JvmStats deserializedJvm = deserializedNodeStats.getJvm();
            if (jvm == null) {
                assertNull(deserializedJvm);
            } else {
                JvmStats.Mem mem = jvm.getMem();
                JvmStats.Mem deserializedMem = deserializedJvm.getMem();
                assertEquals(jvm.getTimestamp(), deserializedJvm.getTimestamp());
                assertEquals(mem.getHeapUsedPercent(), deserializedMem.getHeapUsedPercent());
                assertEquals(mem.getHeapUsed(), deserializedMem.getHeapUsed());
                assertEquals(mem.getHeapCommitted(), deserializedMem.getHeapCommitted());
                assertEquals(mem.getNonHeapCommitted(), deserializedMem.getNonHeapCommitted());
                assertEquals(mem.getNonHeapUsed(), deserializedMem.getNonHeapUsed());
                assertEquals(mem.getHeapMax(), deserializedMem.getHeapMax());
                JvmStats.Classes classes = jvm.getClasses();
                assertEquals(classes.getLoadedClassCount(), deserializedJvm.getClasses().getLoadedClassCount());
                assertEquals(classes.getTotalLoadedClassCount(), deserializedJvm.getClasses().getTotalLoadedClassCount());
                assertEquals(classes.getUnloadedClassCount(), deserializedJvm.getClasses().getUnloadedClassCount());
                assertEquals(jvm.getGc().getCollectors().length, deserializedJvm.getGc().getCollectors().length);
                for (int i = 0; i < jvm.getGc().getCollectors().length; i++) {
                    JvmStats.GarbageCollector garbageCollector = jvm.getGc().getCollectors()[i];
                    JvmStats.GarbageCollector deserializedGarbageCollector = deserializedJvm.getGc().getCollectors()[i];
                    assertEquals(garbageCollector.getName(), deserializedGarbageCollector.getName());
                    assertEquals(garbageCollector.getCollectionCount(), deserializedGarbageCollector.getCollectionCount());
                    assertEquals(garbageCollector.getCollectionTime(), deserializedGarbageCollector.getCollectionTime());
                }
                assertEquals(jvm.getThreads().getCount(), deserializedJvm.getThreads().getCount());
                assertEquals(jvm.getThreads().getPeakCount(), deserializedJvm.getThreads().getPeakCount());
                assertEquals(jvm.getUptime(), deserializedJvm.getUptime());
                if (jvm.getBufferPools() == null) {
                    assertNull(deserializedJvm.getBufferPools());
                } else {
                    assertEquals(jvm.getBufferPools().size(), deserializedJvm.getBufferPools().size());
                    for (int i = 0; i < jvm.getBufferPools().size(); i++) {
                        JvmStats.BufferPool bufferPool = jvm.getBufferPools().get(i);
                        JvmStats.BufferPool deserializedBufferPool = deserializedJvm.getBufferPools().get(i);
                        assertEquals(bufferPool.getName(), deserializedBufferPool.getName());
                        assertEquals(bufferPool.getCount(), deserializedBufferPool.getCount());
                        assertEquals(bufferPool.getTotalCapacity(), deserializedBufferPool.getTotalCapacity());
                        assertEquals(bufferPool.getUsed(), deserializedBufferPool.getUsed());
                    }
                }
            }
            if (nodeStats.getThreadPool() == null) {
                assertNull(deserializedNodeStats.getThreadPool());
            } else {
                Iterator<ThreadPoolStats.Stats> threadPoolIterator = nodeStats.getThreadPool().iterator();
                Iterator<ThreadPoolStats.Stats> deserializedThreadPoolIterator = deserializedNodeStats.getThreadPool().iterator();
                while (threadPoolIterator.hasNext()) {
                    ThreadPoolStats.Stats stats = threadPoolIterator.next();
                    ThreadPoolStats.Stats deserializedStats = deserializedThreadPoolIterator.next();
                    assertEquals(stats.getName(), deserializedStats.getName());
                    assertEquals(stats.getThreads(), deserializedStats.getThreads());
                    assertEquals(stats.getActive(), deserializedStats.getActive());
                    assertEquals(stats.getLargest(), deserializedStats.getLargest());
                    assertEquals(stats.getCompleted(), deserializedStats.getCompleted());
                    assertEquals(stats.getQueue(), deserializedStats.getQueue());
                    assertEquals(stats.getRejected(), deserializedStats.getRejected());
                }
            }
            FsInfo fs = nodeStats.getFs();
            FsInfo deserializedFs = deserializedNodeStats.getFs();
            if (fs == null) {
                assertNull(deserializedFs);
            } else {
                assertEquals(fs.getTimestamp(), deserializedFs.getTimestamp());
                assertEquals(fs.getTotal().getAvailable(), deserializedFs.getTotal().getAvailable());
                assertEquals(fs.getTotal().getTotal(), deserializedFs.getTotal().getTotal());
                assertEquals(fs.getTotal().getFree(), deserializedFs.getTotal().getFree());
                assertEquals(fs.getTotal().getMount(), deserializedFs.getTotal().getMount());
                assertEquals(fs.getTotal().getPath(), deserializedFs.getTotal().getPath());
                assertEquals(fs.getTotal().getSpins(), deserializedFs.getTotal().getSpins());
                assertEquals(fs.getTotal().getType(), deserializedFs.getTotal().getType());
                FsInfo.IoStats ioStats = fs.getIoStats();
                FsInfo.IoStats deserializedIoStats = deserializedFs.getIoStats();
                assertEquals(ioStats.getTotalOperations(), deserializedIoStats.getTotalOperations());
                assertEquals(ioStats.getTotalReadKilobytes(), deserializedIoStats.getTotalReadKilobytes());
                assertEquals(ioStats.getTotalReadOperations(), deserializedIoStats.getTotalReadOperations());
                assertEquals(ioStats.getTotalWriteKilobytes(), deserializedIoStats.getTotalWriteKilobytes());
                assertEquals(ioStats.getTotalWriteOperations(), deserializedIoStats.getTotalWriteOperations());
                assertEquals(ioStats.getDevicesStats().length, deserializedIoStats.getDevicesStats().length);
                for (int i = 0; i < ioStats.getDevicesStats().length; i++) {
                    FsInfo.DeviceStats deviceStats = ioStats.getDevicesStats()[i];
                    FsInfo.DeviceStats deserializedDeviceStats = deserializedIoStats.getDevicesStats()[i];
                    assertEquals(deviceStats.operations(), deserializedDeviceStats.operations());
                    assertEquals(deviceStats.readKilobytes(), deserializedDeviceStats.readKilobytes());
                    assertEquals(deviceStats.readOperations(), deserializedDeviceStats.readOperations());
                    assertEquals(deviceStats.writeKilobytes(), deserializedDeviceStats.writeKilobytes());
                    assertEquals(deviceStats.writeOperations(), deserializedDeviceStats.writeOperations());
                }
            }
            if (nodeStats.getTransport() == null) {
                assertNull(deserializedNodeStats.getTransport());
            } else {
                assertEquals(nodeStats.getTransport().getRxCount(), deserializedNodeStats.getTransport().getRxCount());
                assertEquals(nodeStats.getTransport().getRxSize(), deserializedNodeStats.getTransport().getRxSize());
                assertEquals(nodeStats.getTransport().getServerOpen(), deserializedNodeStats.getTransport().getServerOpen());
                assertEquals(nodeStats.getTransport().getTxCount(), deserializedNodeStats.getTransport().getTxCount());
                assertEquals(nodeStats.getTransport().getTxSize(), deserializedNodeStats.getTransport().getTxSize());
            }
            if (nodeStats.getHttp() == null) {
                assertNull(deserializedNodeStats.getHttp());
            } else {
                assertEquals(nodeStats.getHttp().getServerOpen(), deserializedNodeStats.getHttp().getServerOpen());
                assertEquals(nodeStats.getHttp().getTotalOpen(), deserializedNodeStats.getHttp().getTotalOpen());
            }
            if (nodeStats.getBreaker() == null) {
                assertNull(deserializedNodeStats.getBreaker());
            } else {
                assertEquals(nodeStats.getBreaker().getAllStats().length, deserializedNodeStats.getBreaker().getAllStats().length);
                for (int i = 0; i < nodeStats.getBreaker().getAllStats().length; i++) {
                    CircuitBreakerStats circuitBreakerStats = nodeStats.getBreaker().getAllStats()[i];
                    CircuitBreakerStats deserializedCircuitBreakerStats = deserializedNodeStats.getBreaker().getAllStats()[i];
                    assertEquals(circuitBreakerStats.getEstimated(), deserializedCircuitBreakerStats.getEstimated());
                    assertEquals(circuitBreakerStats.getLimit(), deserializedCircuitBreakerStats.getLimit());
                    assertEquals(circuitBreakerStats.getName(), deserializedCircuitBreakerStats.getName());
                    assertEquals(circuitBreakerStats.getOverhead(), deserializedCircuitBreakerStats.getOverhead(), 0);
                    assertEquals(circuitBreakerStats.getTrippedCount(), deserializedCircuitBreakerStats.getTrippedCount(), 0);
                }
            }
            ScriptStats scriptStats = nodeStats.getScriptStats();
            if (scriptStats == null) {
                assertNull(deserializedNodeStats.getScriptStats());
            } else {
                assertEquals(scriptStats.getCacheEvictions(), deserializedNodeStats.getScriptStats().getCacheEvictions());
                assertEquals(scriptStats.getCompilations(), deserializedNodeStats.getScriptStats().getCompilations());
            }
            DiscoveryStats discoveryStats = nodeStats.getDiscoveryStats();
            DiscoveryStats deserializedDiscoveryStats = deserializedNodeStats.getDiscoveryStats();
            if (discoveryStats == null) {
                assertNull(deserializedDiscoveryStats);
            } else {
                PendingClusterStateStats queueStats = discoveryStats.getQueueStats();
                if (queueStats == null) {
                    assertNull(deserializedDiscoveryStats.getQueueStats());
                } else {
                    assertEquals(queueStats.getCommitted(), deserializedDiscoveryStats.getQueueStats().getCommitted());
                    assertEquals(queueStats.getTotal(), deserializedDiscoveryStats.getQueueStats().getTotal());
                    assertEquals(queueStats.getPending(), deserializedDiscoveryStats.getQueueStats().getPending());
                }
            }
            IngestStats ingestStats = nodeStats.getIngestStats();
            IngestStats deserializedIngestStats = deserializedNodeStats.getIngestStats();
            if (ingestStats == null) {
                assertNull(deserializedIngestStats);
            } else {
                IngestStats.Stats totalStats = ingestStats.getTotalStats();
                assertEquals(totalStats.getIngestCount(), deserializedIngestStats.getTotalStats().getIngestCount());
                assertEquals(totalStats.getIngestCurrent(), deserializedIngestStats.getTotalStats().getIngestCurrent());
                assertEquals(totalStats.getIngestFailedCount(), deserializedIngestStats.getTotalStats().getIngestFailedCount());
                assertEquals(totalStats.getIngestTimeInMillis(), deserializedIngestStats.getTotalStats().getIngestTimeInMillis());
                assertEquals(ingestStats.getStatsPerPipeline().size(), deserializedIngestStats.getStatsPerPipeline().size());
                for (Map.Entry<String, IngestStats.Stats> entry : ingestStats.getStatsPerPipeline().entrySet()) {
                    IngestStats.Stats stats = entry.getValue();
                    IngestStats.Stats deserializedStats = deserializedIngestStats.getStatsPerPipeline().get(entry.getKey());
                    assertEquals(stats.getIngestFailedCount(), deserializedStats.getIngestFailedCount());
                    assertEquals(stats.getIngestTimeInMillis(), deserializedStats.getIngestTimeInMillis());
                    assertEquals(stats.getIngestCurrent(), deserializedStats.getIngestCurrent());
                    assertEquals(stats.getIngestCount(), deserializedStats.getIngestCount());
                }
            }
        }
    }
}
Also used : DiscoveryStats(org.elasticsearch.discovery.DiscoveryStats) BytesStreamOutput(org.elasticsearch.common.io.stream.BytesStreamOutput) FsInfo(org.elasticsearch.monitor.fs.FsInfo) ThreadPoolStats(org.elasticsearch.threadpool.ThreadPoolStats) CircuitBreakerStats(org.elasticsearch.indices.breaker.CircuitBreakerStats) AllCircuitBreakerStats(org.elasticsearch.indices.breaker.AllCircuitBreakerStats) JvmStats(org.elasticsearch.monitor.jvm.JvmStats) ScriptStats(org.elasticsearch.script.ScriptStats) PendingClusterStateStats(org.elasticsearch.discovery.zen.PendingClusterStateStats) IngestStats(org.elasticsearch.ingest.IngestStats) StreamInput(org.elasticsearch.common.io.stream.StreamInput) PendingClusterStateStats(org.elasticsearch.discovery.zen.PendingClusterStateStats) IngestStats(org.elasticsearch.ingest.IngestStats) CircuitBreakerStats(org.elasticsearch.indices.breaker.CircuitBreakerStats) HttpStats(org.elasticsearch.http.HttpStats) AllCircuitBreakerStats(org.elasticsearch.indices.breaker.AllCircuitBreakerStats) ThreadPoolStats(org.elasticsearch.threadpool.ThreadPoolStats) DiscoveryStats(org.elasticsearch.discovery.DiscoveryStats) ScriptStats(org.elasticsearch.script.ScriptStats) OsStats(org.elasticsearch.monitor.os.OsStats) JvmStats(org.elasticsearch.monitor.jvm.JvmStats) ProcessStats(org.elasticsearch.monitor.process.ProcessStats) TransportStats(org.elasticsearch.transport.TransportStats) HashMap(java.util.HashMap) Map(java.util.Map) Collections.emptyMap(java.util.Collections.emptyMap)

Aggregations

FsInfo (org.elasticsearch.monitor.fs.FsInfo)7 DiscoveryNode (org.elasticsearch.cluster.node.DiscoveryNode)5 NodeStats (org.elasticsearch.action.admin.cluster.node.stats.NodeStats)4 JvmStats (org.elasticsearch.monitor.jvm.JvmStats)3 OsStats (org.elasticsearch.monitor.os.OsStats)3 ProcessStats (org.elasticsearch.monitor.process.ProcessStats)3 ScriptStats (org.elasticsearch.script.ScriptStats)3 Path (java.nio.file.Path)2 HashMap (java.util.HashMap)2 ImmutableOpenMap (org.elasticsearch.common.collect.ImmutableOpenMap)2 DiscoveryStats (org.elasticsearch.discovery.DiscoveryStats)2 PendingClusterStateStats (org.elasticsearch.discovery.zen.PendingClusterStateStats)2 HttpStats (org.elasticsearch.http.HttpStats)2 AllCircuitBreakerStats (org.elasticsearch.indices.breaker.AllCircuitBreakerStats)2 CircuitBreakerStats (org.elasticsearch.indices.breaker.CircuitBreakerStats)2 IngestStats (org.elasticsearch.ingest.IngestStats)2 ThreadPoolStats (org.elasticsearch.threadpool.ThreadPoolStats)2 TransportStats (org.elasticsearch.transport.TransportStats)2 CrateUnitTest (io.crate.test.integration.CrateUnitTest)1 ArrayList (java.util.ArrayList)1