blob: 74cc42c93b0af3b8ea60c35a66c52f4fe30be190 [file] [log] [blame]
import React from 'react';
import {
DescriptionList,
DescriptionListDescription,
DescriptionListGroup,
DescriptionListTerm,
Label, LabelGroup,
Tooltip
} from '@patternfly/react-core';
import '../../designer/karavan.css';
import DownIcon from "@patternfly/react-icons/dist/esm/icons/error-circle-o-icon";
import UpIcon from "@patternfly/react-icons/dist/esm/icons/check-circle-icon";
interface Props {
jvm: any,
memory: any,
showConsole: boolean
}
export function InfoMemory (props: Props) {
function getJvmInfo() {
return (
<LabelGroup numLabels={2}>
<Label icon={getIcon()} color={getColor()}>
{props.jvm?.jvm?.vmVendor} {props.jvm?.jvm?.vmVersion}
</Label>
</LabelGroup>
)
}
function getHeapInfo() {
return (
<LabelGroup numLabels={3}>
<Tooltip content="Init" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.heapMemoryInit}
</Label>
</Tooltip>
<Tooltip content="Max" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.heapMemoryMax}
</Label>
</Tooltip>
<Tooltip content="Used" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.heapMemoryUsed}
</Label>
</Tooltip>
</LabelGroup>
)
}
function getJvmUptime() {
return (
<LabelGroup numLabels={2}>
<Tooltip content="Uptime" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.jvm?.jvm?.vmUptime}
</Label>
</Tooltip>
</LabelGroup>
)
}
function getPid() {
return (
<LabelGroup numLabels={2}>
<Tooltip content="PID" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.jvm?.jvm?.pid}
</Label>
</Tooltip>
</LabelGroup>
)
}
function getNonHeapInfo() {
return (
<LabelGroup numLabels={3}>
<Tooltip content="Init" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.nonHeapMemoryInit}
</Label>
</Tooltip>
<Tooltip content="Max" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.nonHeapMemoryMax}
</Label>
</Tooltip>
<Tooltip content="Used" position={"bottom"}>
<Label icon={getIcon()} color={getColor()}>
{props.memory?.memory?.nonHeapMemoryUsed}
</Label>
</Tooltip>
</LabelGroup>
)
}
function getIcon() {
return (getRunning() ? <UpIcon/> : <DownIcon/>)
}
function getColor() {
return getRunning() ? "green" : "grey";
}
function getRunning(): boolean {
return isRunning(props.jvm);
}
function isRunning(c: any): boolean {
return c?.jvm?.pid != undefined;
}
return (
<DescriptionList isHorizontal>
<DescriptionListGroup>
<DescriptionListTerm>JVM</DescriptionListTerm>
<DescriptionListDescription>
{getJvmInfo()}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>PID</DescriptionListTerm>
<DescriptionListDescription>
{getPid()}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Uptime</DescriptionListTerm>
<DescriptionListDescription>
{getJvmUptime()}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Heap</DescriptionListTerm>
<DescriptionListDescription>
{getHeapInfo()}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Non-Heap</DescriptionListTerm>
<DescriptionListDescription>
{getNonHeapInfo()}
</DescriptionListDescription>
</DescriptionListGroup>
</DescriptionList>
);
}