diff --git a/cmoa_install.yaml b/cmoa_install.yaml index 4ce1059..99cd479 100755 --- a/cmoa_install.yaml +++ b/cmoa_install.yaml @@ -3,9 +3,9 @@ become: true gather_facts: true environment: - KUBECONFIG: /root/.kube/ansible_config + KUBECONFIG: /Users/byeonjunghun/.kube/ansible_config vars: - REGISTRY: 10.10.43.224:5000/cmoa3 + REGISTRY: 10.10.43.200:5000/cmoa3 REPO: "nexus" # dockerhub or nexus roles: - role: cmoa_install diff --git a/inventory b/inventory index 5b969cd..adc87b6 100755 --- a/inventory +++ b/inventory @@ -1,11 +1,11 @@ [master] -10.10.43.200 +10.10.43.200 ansible_user=root [worker1] -10.10.43.201 +10.10.43.201 ansible_user=root [worker2] -10.10.43.202 +10.10.43.202 ansible_user=root [cluster:children] master diff --git a/roles/cmoa_install/files/03-ddl-dml/postgres/patch/postgres_patch_3.5.6.psql b/roles/cmoa_install/files/03-ddl-dml/postgres/patch/postgres_patch_3.5.6.psql new file mode 100644 index 0000000..303f51e --- /dev/null +++ b/roles/cmoa_install/files/03-ddl-dml/postgres/patch/postgres_patch_3.5.6.psql @@ -0,0 +1,368 @@ +-- Topology agent와 Metric agent 통합 작업 +UPDATE public.agent_install_file_info + SET yaml='--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: cloudmoa-cluster-role +rules: + - nonResourceURLs: + - "*" + verbs: + - get + - apiGroups: + - metrics.k8s.io + resources: + - pods + - nodes + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - nodes/stats + - endpoints + - namespaces + - events + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - deployments/scale + - replicasets + - replicasets/scale + - statefulsets + - statefulsets/scale + verbs: + - get + - list + - watch + - update + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - update + - apiGroups: + - batch + resources: + - cronjobs + verbs: + - get + - list + - update + - apiGroups: + - storage.j8s.io + resources: + - storageclasses + verbs: + - get + - list + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - get + - list + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - apiGroups: + - policy + resources: + - podsecuritypolicies + verbs: + - use + resourceNames: + - imxc-ps + - apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/kube-apiserver-client-kubelet + resources: + - signers + verbs: + - approve + - apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/kubelet-serving + resources: + - signers + verbs: + - approve + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - proxy + - apiGroups: + - "" + resources: + - nodes/log + - nodes/metrics + - nodes/proxy + - nodes/spec + - nodes/stats + verbs: + - ''*'' + - apiGroups: + - ''*'' + resources: + - ''*'' + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: cloudmoa-restricted-rb + namespace: $CLOUDMOA_NAMESPACE +subjects: + - kind: ServiceAccount + name: default + namespace: $CLOUDMOA_NAMESPACE +roleRef: + kind: ClusterRole + name: cloudmoa-cluster-role + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: cloudmoa-psp + namespace: $CLOUDMOA_NAMESPACE +spec: + privileged: true + seLinux: + rule: RunAsAny + supplementalGroups: + rule: RunAsAny + runAsUser: + rule: RunAsAny + fsGroup: + rule: RunAsAny + hostPorts: + - max: 65535 + min: 0 + hostNetwork: true + hostPID: true + volumes: + - configMap + - secret + - emptyDir + - hostPath + - projected + - downwardAPI + - persistentVolumeClaim +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: cloudmoa-topology-agent + namespace: $CLOUDMOA_NAMESPACE + labels: + app: cloudmoa-topology-agent +spec: + selector: + matchLabels: + app: cloudmoa-topology-agent + template: + metadata: + labels: + app: cloudmoa-topology-agent + spec: + hostNetwork: true + hostPID: true + tolerations: + - effect: NoSchedule + operator: Exists + - effect: NoExecute + operator: Exists + containers: + - name: metric-agent + image: $DOCKER_REGISTRY_URL/metric-agent:$IMAGE_TAG + args: + - --config.file=/etc/metric-agent/metric-agent.yml + env: + - name: CLUSTER_ID + value: $CLOUDMOA_CLUSTER_ID + - name: STORAGE_TYPE + value: datagate + - name: DATAGATE + value: $COLLTION_SERVER_DATAGATE_IP:$COLLTION_SERVER_DATAGATE_PORT + - name: NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: LOG_LEVEL + value: "INFO" + ports: + - containerPort: 14271 + protocol: TCP + - containerPort: 14272 + protocol: TCP + resources: + limits: + cpu: 250m + memory: 180Mi + requests: + cpu: 125m + memory: 90Mi + volumeMounts: + - mountPath: /etc/metric-agent/ + name: config-volume + - image: $DOCKER_REGISTRY_URL/node-exporter + name: node-agent + resources: + limits: + cpu: 250m + memory: 180Mi + requests: + cpu: 125m + memory: 90Mi + ports: + - containerPort: 9110 + hostPort: 9110 + name: scrape + args: + - --path.procfs=/host/proc + - --path.sysfs=/host/sys + - --path.rootfs=/host/root + - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|run|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/) + - --collector.tcpstat + - --web.listen-address=:9110 + # --log.level=debug + env: + - name: GOMAXPROCS + value: "1" + volumeMounts: + - mountPath: /host/proc + name: proc-volume + readOnly: false + - mountPath: /host/sys + name: sys-volume + readOnly: false + - mountPath: /host/root + mountPropagation: HostToContainer + name: root-volume + readOnly: true + - name: cloudmoa-topology-agent + image: $DOCKER_REGISTRY_URL/topology-agent:$IMAGE_TAG + resources: + requests: + cpu: 200m + memory: 512Mi + limits: + cpu: 500m + memory: 600Mi + securityContext: + privileged: true + volumeMounts: + - mountPath: /host/usr/bin + name: bin-volume + - mountPath: /var/run/docker.sock + name: docker-volume + - mountPath: /host/proc + name: proc-volume + - mountPath: /root + name: root-volume + - mountPath: /log + name: log-volume + env: + - name: DATAGATE + value: $COLLTION_SERVER_DATAGATE_IP:$COLLTION_SERVER_DATAGATE_PORT + - name: CLUSTER_ID + value: $CLOUDMOA_CLUSTER_ID + - name: ROOT_DIRECTORY + value: /root + - name: NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: POD_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: LOG_LEVEL + value: "INFO" + livenessProbe: + httpGet: + path: /healthz + port: 18081 + initialDelaySeconds: 30 + timeoutSeconds: 5 + volumes: + - name: bin-volume + hostPath: + path: /usr/bin + type: Directory + - name: docker-volume + hostPath: + path: /var/run/docker.sock + - name: proc-volume + hostPath: + path: /proc + - name: root-volume + hostPath: + path: / + - hostPath: + path: /sys + name: sys-volume + - name: log-volume + hostPath: + path: /home' + WHERE id=2; + + +-- Analysis|Log Viewer 에 Container Tab 추가 +INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Statistics & Analysis|Log Viewer|Container', false, null); +INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (53, 'Log Viewer(Container)', NULL, 13, '', (select id from auth_resource3 where name='menu|Statistics & Analysis|Log Viewer|Container'), 0); +commit; + diff --git a/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_ddl.psql b/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_ddl.psql index 7244d27..6bad44a 100644 --- a/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_ddl.psql +++ b/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_ddl.psql @@ -1810,6 +1810,7 @@ CREATE TABLE "cmoa_storageclass_base" ( "kind" VARCHAR(30) NOT NULL, "metadata_uid" VARCHAR(40) NOT NULL, "row_index" INTEGER NOT NULL, + "metadata_labels" TEXT NULL DEFAULT NULL, "metadata_name" TEXT NULL DEFAULT NULL, "metadata_creationtimestamp" VARCHAR(25) NULL DEFAULT NULL, "metadata_resourceversion" TEXT NULL DEFAULT NULL, @@ -1853,6 +1854,7 @@ CREATE TABLE "cmoa_clusterrolebinding_base" ( "kind" VARCHAR(30) NOT NULL, "metadata_uid" VARCHAR(40) NOT NULL, "row_index" INTEGER NOT NULL, + "metadata_labels" TEXT NULL DEFAULT NULL, "metadata_name" TEXT NULL DEFAULT NULL, "metadata_creationtimestamp" VARCHAR(25) NULL DEFAULT NULL, "metadata_resourceversion" TEXT NULL DEFAULT NULL, @@ -1867,6 +1869,7 @@ CREATE TABLE "cmoa_role_base" ( "kind" VARCHAR(30) NOT NULL, "metadata_uid" VARCHAR(40) NOT NULL, "row_index" INTEGER NOT NULL, + "metadata_labels" TEXT NULL DEFAULT NULL, "metadata_name" TEXT NULL DEFAULT NULL, "metadata_creationtimestamp" VARCHAR(25) NULL DEFAULT NULL, "metadata_resourceversion" TEXT NULL DEFAULT NULL, @@ -1881,6 +1884,7 @@ CREATE TABLE "cmoa_rolebinding_base" ( "kind" VARCHAR(30) NOT NULL, "metadata_uid" VARCHAR(40) NOT NULL, "row_index" INTEGER NOT NULL, + "metadata_labels" TEXT NULL DEFAULT NULL, "metadata_name" TEXT NULL DEFAULT NULL, "metadata_creationtimestamp" VARCHAR(25) NULL DEFAULT NULL, "metadata_resourceversion" TEXT NULL DEFAULT NULL, @@ -1896,10 +1900,11 @@ CREATE TABLE "cmoa_serviceaccount_base" ( "kind" VARCHAR(30) NOT NULL, "metadata_uid" VARCHAR(40) NOT NULL, "row_index" INTEGER NOT NULL, + "metadata_labels" TEXT NULL DEFAULT NULL, "metadata_name" TEXT NULL DEFAULT NULL, "metadata_creationtimestamp" VARCHAR(25) NULL DEFAULT NULL, "metadata_resourceversion" TEXT NULL DEFAULT NULL, "metadata_namespace" TEXT NULL DEFAULT NULL, "secrets" TEXT NULL DEFAULT NULL, PRIMARY KEY ("kube_flatting_time", "cluster_id", "kind", "metadata_uid", "row_index") -); \ No newline at end of file +); diff --git a/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_dml.psql b/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_dml.psql index 39b611a..42c1635 100644 --- a/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_dml.psql +++ b/roles/cmoa_install/files/03-ddl-dml/postgres/postgres_insert_dml.psql @@ -51,6 +51,7 @@ INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4 INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Documents', (select id from auth_resource2 where type='menu' and name='Reports'), 'menu'); INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Templates', (select id from auth_resource2 where type='menu' and name='Reports'), 'menu'); +INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Mail Group', (select id from auth_resource2 where type='menu' and name='Reports'), 'menu'); INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'User & Group', (select id from auth_resource2 where type='menu' and name='Settings') , 'menu'); INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Alerts', (select id from auth_resource2 where type='menu' and name='Settings') , 'menu'); @@ -72,8 +73,8 @@ INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4 INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Detail', (select id from auth_resource2 where type='menu' and name='Hosts'), 'menu'); INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Group', (select id from auth_resource2 where type='menu' and name='Hosts'), 'menu'); ---INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'CloudMOA - Nodes Resource', NULL, 'dashboard'); ---INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Service Detail', NULL, 'dashboard'); +--INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Node Overview', NULL, 'dashboard'); +--INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Service Overview', NULL, 'dashboard'); --INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES (4, 'Postgres', NULL, 'dashboard'); --INSERT INTO public.auth_resource2 (access_type, name, parent_id, type) VALUES(4, 'Check Script', (select id from auth_resource2 where type='menu' and name='Health Check'), 'menu'); @@ -126,9 +127,11 @@ INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|St INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Statistics & Analysis|Service Traces', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Statistics & Analysis|Log Viewer|Node', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Statistics & Analysis|Log Viewer|Pod', false, null); +INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Statistics & Analysis|Log Viewer|Container', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Reports|Documents', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Reports|Templates', false, null); +INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Reports|Mail Group', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Settings|User & Group', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('menu|Settings|Alerts', false, null); @@ -173,9 +176,9 @@ VALUES('admin', null, null, null, null, false, false, true, true, now(), null); --(user_id, lang, theme, access_token, refresh_token, error_msg, alert_sound, session_persistence, gpu_acc_topology, created_date, modified_date) --VALUES('owner', null, null, null, null, false, false, true, true, now(), null); --- Dashboard 추가 (Nodes Resource , Service Detail , Postgres , Redis , Traefik , MySQL / MariaDB , Nginx-Ingress) -INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Nodes Resource', false, null); -INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Service Detail', false, null); +-- Dashboard 추가 (Node Overview , Service Overview , Postgres , Redis , Traefik , MySQL / MariaDB , Nginx-Ingress) +INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Node Overview', false, null); +INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Service Overview', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Postgres', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Redis', false, null); INSERT INTO public.auth_resource3 (name, is_deleted, tenant_id) VALUES ('dashboard|admin|Traefik', false, null); @@ -228,10 +231,12 @@ INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resou INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (50, 'Service Trace Analysis', NULL, 10, 'serviceTraceSA', (select id from auth_resource3 where name='menu|Statistics & Analysis|Service Traces'), 0); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (51, 'Log Viewer(Node)', NULL, 11, '', (select id from auth_resource3 where name='menu|Statistics & Analysis|Log Viewer|Node'), 0); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (52, 'Log Viewer(Pod)', NULL, 12, '', (select id from auth_resource3 where name='menu|Statistics & Analysis|Log Viewer|Pod'), 0); +INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (53, 'Log Viewer(Container)', NULL, 13, '', (select id from auth_resource3 where name='menu|Statistics & Analysis|Log Viewer|Container'), 0); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (60, 'Reports', '07.Report', 6, NULL, (select id from auth_resource3 where name='menu|Reports'), 2); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (61, 'Documents', NULL, 0, 'documentReport', (select id from auth_resource3 where name='menu|Reports|Documents'), 2); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (62, 'Templates', NULL, 1, 'templateReport', (select id from auth_resource3 where name='menu|Reports|Templates'), 2); +INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (63, 'Mail Group', NULL, 2, 'mailGroupReport', (select id from auth_resource3 where name='menu|Reports|Mail Group'), 2); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (65, 'Dashboards', '10.Dashboard', 7, NULL, (select id from auth_resource3 where name='menu|Dashboards'), 2); INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resource3_id, scope_level) VALUES (66, 'My List', NULL, 0, 'documentDashboard', (select id from auth_resource3 where name='menu|Dashboards|My List'), 2); @@ -304,6 +309,7 @@ INSERT INTO public.menu_meta (id, description, icon, "position", url, auth_resou --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Reports'), 'owner'); --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Reports|Documents'), 'owner'); --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Reports|Templates'), 'owner'); +--INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Reports|Mail Group'), 'owner'); --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Dashboards'), 'owner'); --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Dashboards|My List'), 'owner'); --INSERT INTO public.user_permission2 VALUES (nextval('hibernate_sequence'), now(), now(), false, 4, (SELECT id FROM auth_resource3 WHERE NAME = 'menu|Dashboards|Shared List'), 'owner'); @@ -739,6 +745,7 @@ INSERT INTO public.metric_base (meta_name, provider, description, resource_type, -- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816500, '2019-08-19 06:14:22.629', '2019-08-19 06:14:22.629', false, 4, (select id from auth_resource2 where type='menu' and name='Reports' and parent_id is null) , 'admin'); -- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816501, '2019-08-19 06:14:22.734', '2019-08-19 06:14:22.734', false, 4, (select id from auth_resource2 where type='menu' and name='Documents' and parent_id=(select id from auth_resource2 where type='menu' and name='Reports' and parent_id is null)) , 'admin'); -- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816502, '2019-08-19 06:14:22.734', '2019-08-19 06:14:22.734', false, 4, (select id from auth_resource2 where type='menu' and name='Templates' and parent_id=(select id from auth_resource2 where type='menu' and name='Reports' and parent_id is null)) , 'admin'); +-- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816502, '2019-08-19 06:14:22.734', '2019-08-19 06:14:22.734', false, 4, (select id from auth_resource2 where type='menu' and name='Mail Group' and parent_id=(select id from auth_resource2 where type='menu' and name='Reports' and parent_id is null)) , 'admin'); -- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816550, '2019-08-19 06:14:22', '2019-08-19 06:14:22', false, 4, (select id from auth_resource2 where type='menu' and name='Dashboards' ) , 'admin'); -- INSERT INTO public.user_permission2 (id, created_date, modified_date, all_child, permission, auth_resource_id, user_id) VALUES (3816551, '2019-08-19 06:14:22.734', '2019-08-19 06:14:22.734', false, 4, (select id from auth_resource2 where type='menu' and name='My List' and parent_id=(select id from auth_resource2 where type='menu' and name='Dashboards' and parent_id is null)) , 'admin'); @@ -1318,13 +1325,13 @@ INSERT INTO public.report_static(id, created_by, created_date, modified_by, modi '

1. Cluster Resource

Today''s cluster resource usage flow is shown.

1. CPU Usage

Abnormally high CPU usage by particular programs can be an indication that there is something wrong with the computer system.

${metricItem1587977724113}

2. Memory Usage

The Memory Usage window displays the amount of memory available on your system, as well as the memory currently in use by all applications, including Windows itself.

${metricItem1588037028605}

3. Network

A network transmit/receive provides basic network utilization data in relation to the available network capacity.

Transmit

${metricItem1588059107546}

Receive

${metricItem1588059110952}

2. Pod

1. Allocated Pods Count Trend

Running Pod Count
${metricItem1588059623963}







', 'cloudmoa Cluster Daily Report', 'manual', (select id from report_template where title='cloudmoa Cluster Daily Report')); --- Dashboard 추가 (Nodes Resource , Service Detail , Postgres , Redis , Traefik , MySQL / MariaDB , Nginx-Ingress) +-- Dashboard 추가 (Node Overview , Service Overview , Postgres , Redis , Traefik , MySQL / MariaDB , Nginx-Ingress) INSERT INTO public.dashboard2 (id, created_date, modified_date, layout, title, auth_resource_id, created_by, modified_by, description, "share") - VALUES(nextval('hibernate_sequence'), '2020-04-28 09:23:14.286', '2020-04-28 09:23:44.213', '[{"i":"widget0","widget":{"header":"default-header","body":"event-view","title":"Select Filter"},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"params":{"targets":["widget1","widget2","widget3","widget4","widget5","widget6","widget7","widget8"],"action":"changeFilter","options":{"clusterId":{"mod":true,"value":"kBGYTL7cig0gOck0"},"namespace":{"mod":false,"value":null},"entity":{"mod":true,"type":["node"],"value":["cmoa-jspd-master","cmoa-jspd-worker1-contd","cmoa-jspd-worker2-crio"]}}},"visualization":{"type":"select"}},"viewStyle":{"backgroundColor":"#252525"},"x":0,"y":0,"static":true},{"i":"widget1","widget":{"header":"default-header","body":"line-chart-view","title":"CPU Usage"},"w":18,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_disk_read_latency","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":0,"y":3,"static":true},{"i":"widget2","widget":{"header":"default-header","body":"horizontal-bar-chart-view","title":"Memory Usage"},"w":18,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":false,"clusterId":"cloudmoa","metricId":"node_memory_usage","entityId":[],"type":"node"}},"visualization":{"showLegend":true}},"x":0,"y":14,"static":true},{"i":"widget3","widget":{"header":"default-header","body":"line-chart-view","title":"Network Transmit (KiB)"},"w":15,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_network_transmit","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":18,"y":3,"static":true},{"i":"widget4","widget":{"header":"default-header","body":"line-chart-view","title":"Network Receive (KiB)"},"w":15,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_network_receive","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":33,"y":3,"static":true},{"i":"widget5","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Pod Running Count"},"w":30,"h":12,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_pod_running_count","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":18,"y":25,"static":true},{"i":"widget6","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Disk Read Latency (ms)"},"w":15,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_disk_read_latency","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":18,"y":14,"static":true},{"i":"widget7","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Disk Write Latency (ms)"},"w":15,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_disk_write_latency","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":33,"y":14,"static":true},{"i":"widget8","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Filesystem Usage (%)"},"w":18,"h":12,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","metricId":"node_filesystem_usage","entityId":[],"type":"node","namespace":"default"}},"visualization":{"showLegend":true}},"x":0,"y":25,"static":true}]', - 'Nodes Resource', (select id from auth_resource3 where name='dashboard|admin|Nodes Resource'), 'admin', 'admin', NULL, true); + VALUES(nextval('hibernate_sequence'), '2020-04-28 09:23:14.286', '2020-04-28 09:23:44.213', '[{"i":"widget0","widget":{"header":"default-header","body":"line-chart-view","title":"CPU Usage (%)"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_cpu_usage","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":0,"y":7,"static":true},{"i":"widget1","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Pod Running Count"},"w":13,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_pod_running_count","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":0,"y":29,"static":true},{"i":"widget2","widget":{"header":"default-header","body":"line-chart-view","title":"Memory Usage (%)"},"w":13,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_memory_usage","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":23,"y":7,"static":true},{"i":"widget4","widget":{"header":"default-header","body":"label-view","title":" "},"w":23,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":"rgba(160, 75, 142, 1)","fontSize":22,"textAlign":"center","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"CPU Information"}},"x":0,"y":4,"static":true},{"i":"widget3","widget":{"header":"default-header","body":"horizontal-bar-chart-view","title":"CPU Usage Ranking"},"w":11,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":false,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_cpu_usage","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":12,"y":7,"static":true},{"i":"widget6","widget":{"header":"default-header","body":"label-view","title":" "},"w":25,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":"rgba(54, 85, 177, 1)","fontSize":22,"textAlign":"center","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Memory Information"}},"x":23,"y":4,"static":true},{"i":"widget7","widget":{"header":"default-header","body":"line-chart-view","title":"Memory Total Size"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_memory_total","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":36,"y":7,"static":true},{"i":"widget8","widget":{"header":"default-header","body":"label-view","title":" "},"w":23,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":"rgba(12, 105, 26, 1)","fontSize":22,"textAlign":"center","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Network Information"}},"x":0,"y":17,"static":true},{"i":"widget5","widget":{"header":"default-header","body":"line-chart-view","title":"Network Rx"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_network_receive","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":0,"y":20,"static":true},{"i":"widget9","widget":{"header":"default-header","body":"line-chart-view","title":"Network Tx"},"w":11,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_network_transmit","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":12,"y":20,"static":true},{"i":"widget10","widget":{"header":"default-header","body":"label-view","title":" "},"w":25,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":"rgba(210, 162, 19, 1)","fontSize":22,"textAlign":"center","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Disk Information"}},"x":23,"y":17,"static":true},{"i":"widget11","widget":{"header":"default-header","body":"line-chart-view","title":"Disk Read by Node"},"w":13,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_disk_read_bytes","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":23,"y":20,"static":true},{"i":"widget12","widget":{"header":"default-header","body":"line-chart-view","title":"Disk Write by Node"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_disk_write_bytes","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":36,"y":20,"static":true},{"i":"widget13","widget":{"header":"default-header","body":"event-list-view","title":"Event List"},"w":24,"h":12,"minW":24,"minH":12,"maxW":48,"maxH":36,"component":{"api":{"params":{"clusterId":"UUWBI99cDBif4tAQ","namespace":"default"}}},"x":24,"y":29,"static":true},{"i":"widget14","widget":{"header":"default-header","body":"line-chart-view","title":"Node Status"},"w":11,"h":12,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"node_up_state","entityId":"cmoa-jspd-master,cmoa-jspd-worker1,cmoa-jspd-worker2","type":"node"}},"visualization":{"showLegend":true}},"x":13,"y":29,"static":true},{"widget":{"header":"default-header","body":"event-view","title":" "},"w":48,"h":4,"minW":2,"minH":4,"maxW":48,"maxH":36,"component":{"params":{"targets":[],"action":"changeFilter","options":{"clusterId":{"mod":true,"value":"cloudmoa"},"namespace":{"mod":false,"value":null},"entity":{"mod":true,"type":["node"],"value":["cmoa-worker2-2","cmoa-worker1-2","cmoa-master-2"]}}}},"viewStyle":{"backgroundColor":"#252525"},"i":"widget15","static":true,"x":0,"y":0}]', + 'Node Overview', (select id from auth_resource3 where name='dashboard|admin|Node Overview'), 'admin', 'admin', NULL, true); INSERT INTO public.dashboard2 (id, created_date, modified_date, layout, title, auth_resource_id, created_by, modified_by, description, "share") - VALUES(nextval('hibernate_sequence'), '2020-04-28 09:23:14.286', '2020-04-28 09:23:44.213', '[{"i":"widget0","widget":{"header":"default-header","body":"service-tps-view","title":"Service TPS"},"w":24,"h":7,"minW":12,"minH":6,"maxW":48,"maxH":16,"component":{"api":{"uri":"metric.chart","params":{"clusterId":null,"namespace":null,"entityId":null,"type":"service","range":false,"jspdCluster":null}}},"x":0,"y":3,"static":true},{"i":"widget1","widget":{"header":"default-header","body":"event-view","title":"Select Filter"},"w":48,"h":3,"minW":2,"minH":2,"maxW":48,"maxH":36,"component":{"params":{"targets":["widget0","widget2","widget3","widget4","widget5","widget6","widget7","widget8"],"action":"changeFilter","options":{"clusterId":{"mod":true,"value":"cloudmoa"},"namespace":{"mod":true,"value":"imxc"},"entity":{"mod":true,"type":["service"],"value":[]}}},"visualization":{"type":"select"}},"viewStyle":{"backgroundColor":"#252525"},"x":0,"y":0,"static":true},{"i":"widget2","widget":{"header":"default-header","body":"service-treeMap-view","title":"Service TreeMap"},"w":24,"h":21,"minW":20,"minH":10,"maxW":48,"maxH":48,"component":{"api":{"uri":"metric.chart","params":{"clusterId":null,"namespace":null,"entityId":null,"type":"service","range":false}}},"x":24,"y":3,"static":true},{"i":"widget3","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Service Request Count"},"w":12,"h":7,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":null,"namespace":null,"metricId":"imxc_service_http_requests_per_sec","entityId":"","type":null}},"visualization":{"showLegend":true}},"x":0,"y":10,"static":true},{"i":"widget4","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Service Total Error Count"},"w":12,"h":7,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":null,"namespace":null,"metricId":"imxc_service_errors_count","entityId":"","type":null}},"visualization":{"showLegend":true}},"x":0,"y":17,"static":true},{"i":"widget5","widget":{"header":"default-header","body":"scatter-chart-view","bodyClass":["drag-ignore"],"title":"Xview","headerClass":["drag-handle"]},"w":24,"h":13,"minW":20,"minH":12,"maxW":68,"maxH":60,"component":{"api":{"params":{}}},"x":0,"y":24,"static":true},{"i":"widget6","widget":{"header":"default-header","body":"event-list-view","title":"Event List"},"w":24,"h":13,"minW":24,"minH":12,"maxW":48,"maxH":36,"component":{"api":{"params":{"clusterId":null,"namespace":null}}},"x":24,"y":24,"static":true},{"i":"widget7","widget":{"header":"default-header","body":"line-chart-view","title":"Service Latency"},"w":12,"h":7,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":null,"namespace":null,"metricId":"imxc_service_http_requests_time_avg","entityId":"","type":null}},"visualization":{"showLegend":true}},"x":12,"y":10,"static":true},{"i":"widget8","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Service Total Transaction Count"},"w":12,"h":7,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":null,"namespace":null,"metricId":"imxc_service_http_requests_per_sec_by_api","entityId":"","type":null}},"visualization":{"showLegend":true}},"x":12,"y":17,"static":true}]', - 'Service Detail', (select id from auth_resource3 where name='dashboard|admin|Service Detail'), 'admin', 'admin', NULL, true); + VALUES(nextval('hibernate_sequence'), '2020-04-28 09:23:14.286', '2020-04-28 09:23:44.213', '[{"i":"widget0","widget":{"header":"default-header","body":"service-tps-view","title":"Service TPS"},"w":24,"h":8,"minW":12,"minH":6,"maxW":48,"maxH":16,"component":{"api":{"uri":"metric.chart","params":{"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","entityId":"kubernetes,postgres,postgres-exporter,tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service","range":false,"jspdCluster":true,"clusterInfo":{"id":228,"type":"cluster","name":"UUWBI99cDBif4tAQ","compositeKey":"cluster|UUWBI99cDBif4tAQ","accessType":7,"jspdCluster":true,"hasInfo":true,"alias":"jspd"},"namespaceInfo":{"id":null,"type":"namespace","name":"default","compositeKey":"namespace|UUWBI99cDBif4tAQ|default","accessType":7,"jspdCluster":null},"metricId":"imxc_jspd_txn_per_sec"}}},"x":0,"y":0,"static":true},{"i":"widget1","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Active Transaction Count"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"imxc_jspd_pod_active_txn_per_sec","entityId":"tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service"}},"visualization":{"showLegend":true}},"x":0,"y":8,"static":true},{"i":"widget2","widget":{"header":"default-header","body":"service-treeMap-view","title":"Service TreeMap"},"w":24,"h":26,"minW":20,"minH":10,"maxW":48,"maxH":48,"component":{"api":{"uri":"metric.chart","params":{"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","entityId":"kubernetes,postgres,postgres-exporter,tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service","range":false,"clusterInfo":{"id":228,"type":"cluster","name":"UUWBI99cDBif4tAQ","compositeKey":"cluster|UUWBI99cDBif4tAQ","accessType":7,"jspdCluster":true,"hasInfo":true,"alias":"jspd"},"namespaceInfo":{"id":null,"type":"namespace","name":"default","compositeKey":"namespace|UUWBI99cDBif4tAQ|default","accessType":7,"jspdCluster":null},"jspdCluster":true}}},"x":24,"y":0,"static":true},{"i":"widget3","widget":{"header":"default-header","body":"line-chart-view","title":"Service Average Elapsed Time"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"imxc_jspd_txn_elapsed_time_avg","entityId":"tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service"}},"visualization":{"showLegend":true}},"x":12,"y":8,"static":true},{"i":"widget4","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Service Error Count"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"imxc_jspd_txn_error_count","entityId":"postgres-exporter,tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service"}},"visualization":{"showLegend":true}},"x":0,"y":17,"static":true},{"i":"widget5","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Service Total Transaction Count"},"w":12,"h":9,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"UUWBI99cDBif4tAQ","namespace":"default","metricId":"imxc_jspd_txn_per_sec","entityId":"postgres-exporter,tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","type":"service"}},"visualization":{"showLegend":true}},"x":12,"y":17,"static":true},{"i":"widget6","widget":{"header":"default-header","body":"event-list-view","title":"Event List"},"w":24,"h":12,"minW":24,"minH":12,"maxW":48,"maxH":36,"component":{"api":{"params":{"clusterId":"UUWBI99cDBif4tAQ","namespace":"default"}}},"x":24,"y":26,"static":true},{"i":"widget7","widget":{"header":"default-header","body":"scatter-chart-view","bodyClass":["drag-ignore"],"title":"X-View"},"w":24,"h":12,"minW":20,"minH":12,"maxW":68,"maxH":60,"component":{"api":{"params":{"type":"service","clusterId":"UUWBI99cDBif4tAQ","clusterInfo":{"id":228,"type":"cluster","name":"UUWBI99cDBif4tAQ","compositeKey":"cluster|UUWBI99cDBif4tAQ","accessType":7,"jspdCluster":true,"hasInfo":true,"alias":"jspd"},"namespace":"default","namespaceInfo":{"id":null,"type":"namespace","name":"default","compositeKey":"namespace|UUWBI99cDBif4tAQ|default","accessType":7,"jspdCluster":null},"entityId":"kubernetes,postgres,postgres-exporter,tpcc-client,tpcc-delivery,tpcc-main,tpcc-neworder,tpcc-orderstatus,tpcc-payment,tpcc-sendmail,tpcc-shipping,tpcc-stocklevel,tpcc-user","jspdCluster":true}}},"x":0,"y":26,"static":true}]', + 'Service Overview', (select id from auth_resource3 where name='dashboard|admin|Service Overview'), 'admin', 'admin', NULL, true); INSERT INTO public.dashboard2 (id, created_date, modified_date, layout, title, auth_resource_id, created_by, modified_by, description, "share") VALUES(nextval('hibernate_sequence'), '2020-04-28 09:23:14.286', '2020-04-28 09:23:44.213', '[{"i":"widget0","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Resource Utilization"}},"x":0,"y":9,"static":true},{"i":"widget1","widget":{"header":"default-header","body":"line-chart-view","title":"CPU Usage (%)","description":"postgres에 대한 pod들의 cpu 사용량"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"imxc","metricId":"container_cpu_usage_by_workload","entityId":"postgres","type":"workload"}},"visualization":{"showLegend":true}},"x":0,"y":12,"static":true},{"i":"widget2","widget":{"header":"default-header","body":"line-chart-view","title":"Memory Usage (GiB)"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"imxc","metricId":"container_memory_working_set_bytes_by_workload","entityId":"postgres","type":"workload"}},"visualization":{"showLegend":true}},"x":12,"y":12,"static":true},{"i":"widget4","widget":{"header":"default-header","body":"line-chart-view","title":"Network Recieved (KiB)"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"imxc","metricId":"container_network_receive_by_workload","entityId":"postgres","type":"workload"}},"visualization":{"showLegend":true,"background":null,"fontSize":12,"textAlign":"center","padding":[0,18],"sideways":false}},"x":36,"y":12,"static":true},{"i":"widget3","widget":{"header":"default-header","body":"line-chart-view","title":"Network Transmit (KiB)"},"w":12,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"imxc","metricId":"container_network_transmit_by_workload","entityId":"postgres","type":"workload"}},"visualization":{"showLegend":true}},"x":24,"y":12,"static":true},{"i":"widget5","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"General Statics"}},"x":0,"y":22,"static":true},{"i":"widget6","widget":{"header":"default-header","body":"horizontal-bar-chart-view","title":"Lock mode"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":false,"clusterId":"cloudmoa","namespace":"","metricId":"pg_count_by_lockmode","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":25,"static":true},{"i":"widget7","widget":{"header":"default-header","body":"horizontal-bar-chart-view","title":"Connection By DB and State"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":false,"clusterId":"cloudmoa","namespace":"","metricId":"pg_count_by_dbname_state","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":24,"y":25,"static":true},{"i":"widget8","widget":{"header":"default-header","body":"stat-view","title":"Number of Client Connection"},"w":17,"h":6,"minW":6,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":true,"range":false,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_activity_count","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showGauge":false,"showPercent":false,"min":null,"max":null,"decimals":2,"baseColor":"#409EFF","thresholds":[],"showLegend":true}},"x":15,"y":3,"static":true},{"i":"widget9","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Overview"}},"x":0,"y":0,"static":true},{"i":"widget11","widget":{"header":"default-header","body":"stat-view","title":"Lock Count"},"w":16,"h":6,"minW":6,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":true,"range":false,"clusterId":"cloudmoa","namespace":"","metricId":"pg_locks_count","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showGauge":false,"showPercent":false,"min":null,"max":null,"decimals":2,"baseColor":"#409EFF","thresholds":[]}},"x":32,"y":3,"static":true},{"i":"widget10","widget":{"header":"default-header","body":"stat-view","title":"Up"},"w":15,"h":6,"minW":6,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":true,"range":false,"clusterId":"cloudmoa","namespace":"","metricId":"pg_up","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showGauge":false,"showPercent":false,"min":null,"max":null,"decimals":2,"baseColor":"#409EFF","thresholds":[{"color":"#32AC2D","value":"1"}]}},"x":0,"y":3,"static":true},{"i":"widget12","widget":{"header":"default-header","body":"line-chart-view","title":"Buffer Cache Hit Ratio (%)"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_cache_hit_ratio","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true,"showGauge":false,"showPercent":false,"min":null,"max":null,"decimals":2,"baseColor":"#409EFF","thresholds":[]}},"x":0,"y":36,"static":true},{"i":"widget13","widget":{"header":"default-header","body":"line-chart-view","title":"Read/Write spent time by file blocks"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_blk_read_write_time","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true,"row":8,"column":["date","value"]}},"x":24,"y":36,"static":true},{"i":"widget14","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Block"}},"x":0,"y":47,"static":true},{"i":"widget15","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Disk Blocks Read"},"w":48,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_blks_read","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":61,"static":true},{"i":"widget17","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Rows Inserted"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_tup_inserted","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":75,"static":true},{"i":"widget18","widget":{"header":"default-header","body":"line-chart-view","title":"Time Spent Reading Data File Blocks (ms)"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_blk_read_time","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":50,"static":true},{"i":"widget19","widget":{"header":"default-header","body":"line-chart-view","title":"Time Spent Writing Data File Blocks (ms)"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_blk_write_time","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":24,"y":50,"static":true},{"i":"widget20","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Row"}},"x":0,"y":72,"static":true},{"i":"widget16","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Rows Updated"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_tup_updated","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":24,"y":75,"static":true},{"i":"widget21","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Number of Transactions Committed"},"w":24,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_xact_commit","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":110,"static":true},{"i":"widget22","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Rows Returned"},"w":48,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_tup_returned","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":97,"static":true},{"i":"widget23","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Rows Fetched"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_tup_fetched","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":24,"y":86,"static":true},{"i":"widget24","widget":{"header":"default-header","body":"line-chart-view","title":"Number of Rows Deleted"},"w":24,"h":11,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_tup_deleted","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":0,"y":86,"static":true},{"i":"widget25","widget":{"header":"default-header","body":"label-view","title":" "},"w":48,"h":3,"minW":2,"minH":1,"maxW":48,"maxH":36,"component":{"api":{},"visualization":{"background":null,"fontSize":18,"textAlign":"left","padding":[0,18],"sideways":false,"fontWeight":"bold","text":"Transaction"}},"x":0,"y":107,"static":true},{"i":"widget26","widget":{"header":"default-header","body":"stack-bar-chart-view","title":"Number of Transactions Rolled Back"},"w":24,"h":10,"minW":8,"minH":4,"maxW":48,"maxH":18,"component":{"api":{"uri":"metric.chart","params":{"unique":false,"range":true,"clusterId":"cloudmoa","namespace":"","metricId":"pg_stat_database_xact_rollback","entityId":"","type":"PostgreSQL","filter":""}},"visualization":{"showLegend":true}},"x":24,"y":110,"static":true}]', 'Postgres', (select id from auth_resource3 where name='dashboard|admin|Postgres'), 'admin', 'admin', NULL, true); @@ -1674,7 +1681,7 @@ data: receivers: [otlp] processors: [batch, probabilistic_sampler] exporters: [cmoaexporter] -'); +', true, '2021-03-11 13:41:48.000000', '2021-03-11 13:41:56.000000'); insert into public.agent_install_file_info (id, name, type, description, version, yaml, use_yn, created_date, modified_date) values (7, 'jaeger', 'application', 'CloudMOA에서는 고객사에서 운영 중인 application의 TPS, 서비스 연관관계 등의 데이터를 얻기 위해서 Jaeger를 사용하며, Jaeger 사용을 위해 Jaeger-client, jaeger-agent, jaeger-collector의 설치가 필요합니다. ', null, '--- @@ -1979,6 +1986,39 @@ spec: - effect: NoExecute operator: Exists containers: + - name: metric-agent + image: $DOCKER_REGISTRY_URL/metric-agent:$IMAGE_TAG + args: + - --config.file=/etc/metric-agent/metric-agent.yml + env: + - name: CLUSTER_ID + value: $CLOUDMOA_CLUSTER_ID + - name: STORAGE_TYPE + value: datagate + - name: DATAGATE + value: $COLLTION_SERVER_DATAGATE_IP:$COLLTION_SERVER_DATAGATE_PORT + - name: NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: LOG_LEVEL + value: "INFO" + ports: + - containerPort: 14271 + protocol: TCP + - containerPort: 14272 + protocol: TCP + resources: + limits: + cpu: 250m + memory: 180Mi + requests: + cpu: 125m + memory: 90Mi + volumeMounts: + - mountPath: /etc/metric-agent/ + name: config-volume - image: $DOCKER_REGISTRY_URL/node-exporter name: node-agent resources: @@ -2083,7 +2123,11 @@ spec: name: sys-volume - name: log-volume hostPath: - path: /home', true, '2021-03-11 13:37:48.000000', '2021-03-11 13:37:51.000000'); + path: /home + - name: config-volume + configMap: + name: cloudmoa-metric-agent-config +', true, '2021-03-11 13:37:48.000000', '2021-03-11 13:37:51.000000'); insert into public.agent_install_file_info (id, name, type, description, version, yaml, use_yn, created_date, modified_date) values (6, 'prometheus', 'agent', 'Prometheus는 다양한 Exporter들과 연결될 수 있으며, 기본적으로 Node Exporter와 cAdvisor를 통해 수집한 Metric 데이터를 Kafka를 통해 수집 클러스터에 전달하는 역할을 합니다.', '1.16', '--- apiVersion: v1 kind: ConfigMap @@ -2214,57 +2258,6 @@ data: separator: "@" regex: "container_memory.*@" action: drop ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: cloudmoa-metric-agent - namespace: $CLOUDMOA_NAMESPACE - labels: - app: cloudmoa-metric-agent -spec: - selector: - matchLabels: - app: cloudmoa-metric-agent - replicas: 1 - strategy: - type: Recreate - template: - metadata: - labels: - app: cloudmoa-metric-agent - spec: - containers: - - name: cloudmoa-metric-agent - image: $DOCKER_REGISTRY_URL/metric-agent:$IMAGE_TAG - args: - - --config.file=/etc/metric-agent/metric-agent.yml - resources: - requests: - cpu: 100m - memory: 512Mi - limits: - cpu: 300m - memory: 1000Mi - volumeMounts: - - mountPath: /etc/metric-agent/ - name: config-volume - env: - - name: LOG_LEVEL - value: "INFO" - - name: LOG_MAXAGE - value: "1" - - name: CLUSTER_ID - value: $CLOUDMOA_CLUSTER_ID - - name: DATAGATE - value: $COLLTION_SERVER_DATAGATE_IP:$COLLTION_SERVER_DATAGATE_PORT - - name: STORAGE_TYPE - value: datagate - restartPolicy: Always - volumes: - - name: config-volume - configMap: - name: cloudmoa-metric-agent-config ', false, '2021-03-11 13:39:07.000000', '2021-03-11 13:39:09.000000'); insert into public.agent_install_file_info (id, name, type, description, version, yaml, use_yn, created_date, modified_date) values (3, 'prometheus', 'agent', 'Prometheus는 다양한 Exporter들과 연결될 수 있으며, 기본적으로 Node Exporter와 cAdvisor를 통해 수집한 Metric 데이터를 Kafka를 통해 수집 클러스터에 전달하는 역할을 합니다.', '1.15', '--- apiVersion: v1 @@ -2389,55 +2382,6 @@ data: - source_labels: [ __name__ ] regex: (container_cpu_cfs_throttled_seconds_total|container_cpu_system_seconds_total|container_cpu_usage_seconds_total|container_cpu_user_seconds_total|container_fs_limit_bytes|container_fs_reads_bytes_total|container_fs_usage_bytes|container_fs_writes_bytes_total|container_last_seen|container_memory_cache|container_memory_max_usage_bytes|container_memory_swap|container_memory_usage_bytes|container_memory_working_set_bytes|container_network_receive_bytes_total|container_network_transmit_bytes_total|container_spec_memory_limit_bytes) action: keep ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: cloudmoa-metric-agent - namespace: $CLOUDMOA_NAMESPACE - labels: - app: cloudmoa-metric-agent -spec: - selector: - matchLabels: - app: cloudmoa-metric-agent - replicas: 1 - strategy: - type: Recreate - template: - metadata: - labels: - app: cloudmoa-metric-agent - spec: - containers: - - name: cloudmoa-metric-agent - image: $DOCKER_REGISTRY_URL/metric-agent:$IMAGE_TAG - args: - - --config.file=/etc/metric-agent/metric-agent.yml - resources: - requests: - cpu: 100m - memory: 512Mi - limits: - cpu: 300m - memory: 1000Mi - volumeMounts: - - mountPath: /etc/metric-agent/ - name: config-volume - env: - - name: LOG_LEVEL - value: "INFO" - - name: CLUSTER_ID - value: $CLOUDMOA_CLUSTER_ID - - name: DATAGATE - value: $COLLTION_SERVER_DATAGATE_IP:$COLLTION_SERVER_DATAGATE_PORT - - name: STORAGE_TYPE - value: datagate - restartPolicy: Always - volumes: - - name: config-volume - configMap: - name: cloudmoa-metric-agent-config ', true, '2021-03-11 13:39:07.000000', '2021-03-11 13:39:09.000000'); insert into public.alert_config_info (config_id, created_date, modified_date, config_data, config_default, in_use) values ('config', now(), null, 'global:${GLOBAL}\nroute:${ROUTE}\nreceivers:${RECEIVERS}', 'global:${GLOBAL}\nroute:${ROUTE}\nreceivers:${RECEIVERS}', true); @@ -2607,7 +2551,7 @@ INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,ent INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,entity_type,groupby_keys,in_use,anomaly_score,message) VALUES('container_cpu_usage_against_limit','Container CPU Usage Against Limits (%)','Conatiner CPU Usage Against Limits ( % ) ','sum by(xm_clst_id,xm_namespace,owner_name,xm_pod_id,xm_cont_name,xm_entity_type) (rate(imxc_kubernetes_container_resource_limit_cpu{xm_cont_name!="POD"} [1m])+ on (xm_clst_id,xm_namespace,xm_pod_id,xm_cont_name) group_left(owner_name) (sum (imxc_kubernetes_container_resource_limit_cpu{container_state="Running",pod_state="Running",{filter}}) without (instance)) * 0)','CPU','Workload','','true','false','CLST:{{$labels.xm_clst_id}} DP:{{$labels.owner_name}} CT:{{$labels.xm_cont_name}} PD:{{$labels.xm_pod_id}} CPU Usage (%):{{humanize $value}}%|{threshold}%.'); INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,entity_type,groupby_keys,in_use,anomaly_score,message) VALUES('container_memory_usage_against_limit','Container Memory Usage Against Limit','Container Memory Usage Against Limit','sum by(xm_clst_id,xm_namespace,xm_pod_id,xm_cont_name,xm_entity_type,owner_name) (container_memory_usage_bytes{xm_cont_name!="POD"} / on (xm_clst_id,xm_namespace,xm_cont_name,xm_pod_id) group_left(owner_name) (sum (imxc_kubernetes_container_resource_limit_memory{container_state="Running",pod_state="Running",xm_cont_name!="POD",{filter}}) without (instance))) * 100','Memory','Workload','','true','false','CLST:{{$labels.xm_clst_id}} DP:{{$labels.owner_name}} CT:{{$labels.xm_cont_name}} PD:{{$labels.xm_pod_id}} Memory Limit Against Usage:{{humanize $value}}%|{threshold}%.'); --- log parsing 관련 metric meta 추가 log parsing 관련 metric_id는 ** id = log_parsing 필수 들어 가함 front에서 parsing해서 씀 ( rel0.0.0에 적용 해야함 ) +-- log parsing 관련 metric meta 추가 log parsing 관련 metric_id는 ** id = log_parsing 필수 들어 가함 front에서 parsing해서 씀 ( rel3.5.5에 적용 해야함 ) INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,entity_type,groupby_keys,in_use,message) VALUES ('count_pod_log_parsing','Log Parsing Log of Pods By Workload','Log Parsing Log of Pods By Workload','count by (xm_clst_id, xm_node_id, xm_namespace, xm_pod_id, xm_regex) (log_metric_counter_cmoa_metric{{filter}})','Log','Workload','xm_clst_id, xm_namespace, xm_pod_id',true,'CLST:{{$labels.xm_clst_id}} POD:{{$labels.xm_pod_id}} NS:{{$labels.xm_namespace}} regex:{{$labels.xm_regex}}.'); -- CLOUD-20838 | Alert | topology-agent / node-agent 다운 시 alert 생성 @@ -2623,4 +2567,4 @@ INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,ent VALUES ('count_pod_oomkilled','OOMKilled of Pods By Workload','OOMKilled of Pods By Workload','count by (xm_clst_id, xm_pod_id, xm_cont_name, xm_namespace) (imxc_pod_container_status_terminated_reason_oom{{filter}})','State','Workload','xm_clst_id, xm_namespace, xm_pod_id',TRUE,'CLST:{{$labels.xm_clst_id}} POD:{{$labels.xm_pod_id}} NS:{{$labels.xm_namespace}}.'); -- Last Reason OOMKilled INSERT INTO public.metric_meta2 (id,meta_name,description,expr,resource_type,entity_type,groupby_keys,in_use,message) -VALUES ('count_pod_last_oomkilled','Last OOMKilled of Pods By Workload','Last OOMKilled of Pods By Workload','count by (xm_clst_id, xm_pod_id, xm_cont_name, xm_namespace) (imxc_pod_container_status_last_terminated_reason_oom{{filter}})','State','Workload','xm_clst_id, xm_namespace, xm_pod_id', TRUE,'CLST:{{$labels.xm_clst_id}} POD:{{$labels.xm_pod_id}} NS:{{$labels.xm_namespace}}.'); \ No newline at end of file +VALUES ('count_pod_last_oomkilled','Last OOMKilled of Pods By Workload','Last OOMKilled of Pods By Workload','count by (xm_clst_id, xm_pod_id, xm_cont_name, xm_namespace) (imxc_pod_container_status_last_terminated_reason_oom{{filter}})','State','Workload','xm_clst_id, xm_namespace, xm_pod_id', TRUE,'CLST:{{$labels.xm_clst_id}} POD:{{$labels.xm_pod_id}} NS:{{$labels.xm_namespace}}.');