반응형
PostgreSQL Query Discussion
SELECT
datname AS "metric",
count(datname) AS "Value",
date_trunc('minute', xact_start) AS time
FROM
pg_stat_activity
GROUP BY
datname,
xact_start
ORDER BY
xact_start
쿼리는 Invalid type for column time, must be of type timestamp or unix timestamp, got: 에러

Assistant: 죄송합니다. pg_stat_activity 테이블에서 트랜잭션이 시작되지 않은 세션의 xact_start 값은 NULL일 수 있습니다. 이를 방지하기 위해 xact_startNULL이 아닌 경우에만 집계하도록 필터링을 추가해야 합니다. 또한, Grafana에서 요구하는 형식에 맞게 time 열을 적절히 처리해야 합니다.

다음은 xact_startNULL이 아닌 경우에만 데이터를 집계하여 Grafana에서 사용할 수 있는 쿼리입니다:

SELECT
  date_trunc('minute', xact_start) AS time,
  datname AS metric,
  count(*) AS value
FROM
  pg_stat_activity
WHERE
  xact_start IS NOT NULL
GROUP BY
  time, datname
ORDER BY
  time

이 쿼리는 다음과 같은 기능을 합니다:

  • date_trunc('minute', xact_start)를 사용하여 xact_start를 분 단위로 잘라냅니다.
  • xact_startNULL이 아닌 경우에만 데이터를 필터링합니다.
  • 각 데이터베이스(datname)별로 트랜잭션의 수(count(*))를 집계합니다.
  • 결과를 시간(time)을 기준으로 정렬합니다.

이렇게 하면 Grafana가 요구하는 시계열 데이터 형식에 맞게 데이터를 준비할 수 있습니다. 이 쿼리를 Grafana에 입력하면 시계열 패널에 각 데이터베이스의 트랜잭션 수를 시간별로 시각화할 수 있습니다.

반응형
반응형
PostgreSQL Query Discussion

Assistant: Grafana 패널에 시계열 데이터를 시각화하려면 해당 시계열 데이터를 쿼리하여 Grafana가 이해할 수 있는 형식으로 가져와야 합니다. PostgreSQL의 pg_stat_activity 테이블에서 데이터베이스 이름(datname)과 트랜잭션 시작 시간(xact_start)을 사용하여 시계열 데이터를 추출하는 쿼리를 작성할 수 있습니다.

다음은 Grafana 패널을 만드는 데 사용할 수 있는 쿼리 예제입니다:

SELECT
  datname AS "Database",
  count(datname) AS "Session Count",
  xact_start AS "Transaction Start Time"
FROM
  pg_stat_activity
GROUP BY
  datname,
  xact_start
ORDER BY
  xact_start

이 쿼리는 각 데이터베이스 별 세션 수와 각 트랜잭션의 시작 시간을 반환합니다. Grafana에서 이 쿼리를 사용하여 시계열 데이터를 시각화할 수 있습니다. 데이터베이스 별로 세션 수의 변화와 각 트랜잭션의 시작 시간을 시계열 차트에 표시할 수 있습니다.

User: Value column must have numeric datatype, column: Database type: string value: postgres 이런 에러가 발생하네

Assistant: 죄송합니다. Grafana의 시계열 패널에서 사용하는 쿼리는 시간(timestamp), 메트릭(metric), 값(value)의 세 가지 필드가 필요합니다. datname 필드는 문자열 타입이므로 메트릭으로 사용할 수 없습니다. 대신, 각 데이터베이스의 트랜잭션 수를 시간별로 집계하여 표시해야 합니다.

이를 위해서는 xact_start의 시간 부분을 기준으로 세션 수를 집계해야 합니다. 다음은 이러한 쿼리를 작성하는 방법입니다:

SELECT
  date_trunc('minute', xact_start) AS time,
  datname AS metric,
  count(*) AS value
FROM
  pg_stat_activity
WHERE
  xact_start IS NOT NULL
GROUP BY
  time, datname
ORDER BY
  time

이 쿼리는 xact_start를 분 단위로 잘라서(time) 각 데이터베이스(datname) 별로 트랜잭션 수(count(*))를 집계합니다. 이렇게 하면 Grafana에서 시계열 차트로 시각화할 수 있습니다.

반응형
반응형

 

 

User: postgresql이 pg_stat_activity 테이블에서 xact_start, querystart차이

Assistant: pg_stat_activity 테이블은 현재 실행 중인 PostgreSQL 세션에 대한 정보를 제공합니다. 여기에는 각 세션의 시작 시간, 실행 중인 쿼리의 시작 시간 및 트랜잭션 시작 시간과 같은 정보가 포함됩니다.

- xact_start: 현재 세션이 시작된 시간으로, 해당 세션이 트랜잭션을 시작한 시간을 나타냅니다. 이는 현재 세션이 트랜잭션 내에서 작동 중인지 여부를 파악하는 데 사용됩니다.

- query_start: 현재 세션에서 현재 실행 중인 쿼리의 시작 시간입니다. 이것은 현재 세션에서 실행 중인 쿼리의 시작 시간을 나타내며, 다음 쿼리가 실행되기 전까지 해당 값이 갱신되지 않습니다. 이것은 현재 세션이 얼마나 오랫동안 쿼리를 실행하고 있는지를 추적하는 데 사용됩니다.

따라서 두 값의 차이는 세션이 트랜잭션을 시작한 후 현재까지 얼마나 오랫동안 실행되고 있는지를 나타냅니다. 만약 이 값이 크다면, 해당 세션이 오랜 시간동안 활동 중이거나 긴 트랜잭션을 가지고 있을 수 있습니다.

User: pg_stat_activity를 count(datname), xact_start는 Time series 로 grafana 패널 만드는 쿼리

Assistant: Grafana 패널에 시계열 데이터를 시각화하려면 해당 시계열 데이터를 쿼리하여 Grafana가 이해할 수 있는 형식으로 가져와야 합니다. PostgreSQL의 pg_stat_activity 테이블에서 데이터베이스 이름(datname)과 트랜잭션 시작 시간(xact_start)을 사용하여 시계열 데이터를 추출하는 쿼리를 작성할 수 있습니다.

SELECT
  datname AS "Database",
  count(datname) AS "Session Count",
  xact_start AS "Transaction Start Time"
FROM
  pg_stat_activity
GROUP BY
  datname,
  xact_start
ORDER BY
  xact_start
        

이 쿼리는 각 데이터베이스 별 세션 수와 각 트랜잭션의 시작 시간을 반환합니다. Grafana에서 이 쿼리를 사용하여 시계열 데이터를 시각화할 수 있습니다. 데이터베이스 별로 세션 수의 변화와 각 트랜잭션의 시작 시간을 시계열 차트에 표시할 수 있습니다.

User: Value column must have numeric datatype, column: Database type: string value: postgres 이런 에러가 발생하네

Assistant: Grafana의 시계열 패널에서 사용하는 쿼리는 시간(timestamp), 메트릭(metric), 값(value)의 세 가지 필드가 필요합니다. datname 필드는 문자열 타입이므로 메트릭으로 사용할 수 없습니다. 대신, 각 데이터베이스의 트랜잭션 수를 시간별로 집계하여 표시해야 합니다.

이를 위해서는 xact_start의 시간 부분을 기준으로 세션 수를 집계해야 합니다. 다음은 이러한 쿼리를 작성하는 방법입니다:

SELECT
  date_trunc('minute', xact_start) AS time,
  datname AS metric,
  count(*) AS value
FROM
  pg_stat_activity
WHERE
  xact_start IS NOT NULL
GROUP BY
  time, datname
ORDER BY
  time
        

이 쿼리는 xact_start를 분 단위로 잘라서(time) 각 데이터베이스(datname) 별로 트랜잭션 수(count(*))를 집계합니다. 이렇게 하면 Grafana에서 시계열 차트로 시각화할 수 있습니다.

User: SELECT datname AS "metric", count(datname) AS "Value", date_trunc('minute', xact_start) AS time FROM pg_stat_activity GROUP BY datname, xact_start ORDER BY xact_start 쿼리는 Invalid type for column time, must be of type timestamp or unix timestamp, got: 에러가 나오네

Assistant: pg_stat_activity 테이블에서 트랜잭션이 시작되지 않은 세션의 xact_start 값은 NULL일 수 있습니다. 이를 방지하기 위해 xact_startNULL이 아닌 경우에만 집계하도록 필터링을 추가해야 합니다. 또한, Grafana에서 요구하는 형식에 맞게 time 열을 적절히 처리해야 합니다.

다음은 xact_startNULL이 아닌 경우에만 데이터를 집계하여 Grafana에서 사용할 수 있는 쿼리입니다:

SELECT
  date_trunc('minute', xact_start) AS time,
  datname AS metric,
  count(*) AS value
FROM
  pg_stat_activity
WHERE
  xact_start IS NOT NULL
GROUP BY
  time, datname
ORDER BY
  time
        

이 쿼리는 다음과 같은 기능을 합니다:

  1. date_trunc('minute', xact_start)를 사용하여 xact_start를 분 단위로 잘라냅니다.
  2. User: Value column must have numeric datatype, column: Database type: string value: postgres 이런 에러가 발생하네
  3. 각 데이터베이스(datname)별로 트랜잭션의 수(count(*))를 집계합니다.
  4. 결과를 시간(time)을 기준으로 정렬합니다.

이렇게 하면 Grafana가 요구하는 시계열 데이터 형식에 맞게 데이터를 준비할 수 있습니다. 이 쿼리를 Grafana에 입력하면 시계열 패널에 각 데이터베이스의 트랜잭션 수를 시간별로 시각화할 수 있습니다.

반응형
반응형
Spring 프레임워크와 Tomcat의 차이

Spring 프레임워크와 Tomcat의 차이

스프링 프레임워크(Spring Framework)

  • 스프링은 Java 기반의 웹 애플리케이션 및 엔터프라이즈 애플리케이션을 개발하기 위한 오픈 소스 프레임워크입니다.
  • 주요 기능은 의존성 주입(Dependency Injection), 관점 지향 프로그래밍(Aspect-Oriented Programming), 포터블 리미팩토링(POJO), 템플릿을 통한 데이터 접근(Data Access Templates), 트랜잭션 관리(Transaction Management) 등이 있습니다.
  • 스프링은 애플리케이션의 모듈화, 테스트 용이성, 코드의 재사용성 등을 촉진합니다.
  • 주로 개발자들이 소프트웨어 아키텍처를 유연하게 만들기 위해 사용됩니다.

Tomcat

  • 아파치 톰캣(Apache Tomcat)은 Java Servlet, JavaServer Pages(JSP) 등을 실행하기 위한 웹 애플리케이션 서버입니다.
  • Tomcat은 웹 애플리케이션의 배포, 실행, 관리를 담당합니다.
  • Servlet 컨테이너로서 동작하며, HTTP 요청에 대한 처리 및 응답을 처리합니다.
  • Tomcat은 스프링이나 다른 프레임워크를 이용하여 개발된 Java 웹 애플리케이션을 호스팅하고 실행하는 고 실행하는 데 사용됩니다.
반응형

'IT-기타' 카테고리의 다른 글

browser(브라우져) ssl 인증서 확인  (0) 2023.01.16
반응형

 

import java.io.*; 
import java.util.*; 

public class Main {
//	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//	static StringTokenizer st;
	
	
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;
		
	public static void main(String[] args)throws Exception{

		st = new StringTokenizer(br.readLine());
		
		char a=st.nextToken().charAt(0);
//		int b=Integer.parseInt(st.nextToken());

// 아스키코드표를 보면, 대소문자는 정확히 32만큼 차이가 나므로,
//  char a를 (int)로 형변환 후 32를 빼주면, 소문자->대문자가 됨
		int b = (int)a-32;
		
		
		System.out.println((char)b);

	}

}
반응형

'프로그래밍 > 문제풀이' 카테고리의 다른 글

[반복문] N값만큼 건너띄어서 출력하기  (1) 2023.12.28
반응형
import java.io.*; 
import java.util.*; 

public class Main {
	
	
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;
		
	public static void main(String[] args)throws Exception{

		st = new StringTokenizer(br.readLine());
		
		int N=Integer.parseInt(st.nextToken());
		
		int [] arr = {1,2,3,4,5,6,7,8,9,10};

		for (int i = 0; i < arr.length; i += N) {
		   // n값 만큼 건너뛰려면,  for문의 i에  i += N을 써주면 됨,
           // 보통 i++,  i--가 익숙해서, 틀린문제
			System.out.println(arr[i]);
			
		}
		

	}

}
반응형

'프로그래밍 > 문제풀이' 카테고리의 다른 글

소문자->대문자 변환  (1) 2023.12.29
반응형

<Curl 사용> - index조회 쿼리 curl -X GET "localhost:9200/_cat/ indices?v - index생성쿼리 

curl -X PUT "localhost:9200/ <인덱스명>?pretty

ex) curl -X PUT "localhost:9200/ staff?pretty

 

 < DevTools 사용>

 - 모든 index 조회 쿼리

  ## 모든 Index조회 
  GET /_cat/indices?v

 

 - 생성 

## staff index 생성
PUT /staff/

 

- 생성 후  index 조회 

## staff 라는 index가 생성됨을 확인
GET /_cat/indices?v

 

- index에 데이터 입력 

## staff 라는 type1=type1,  id=1,를 갖는 data 생성
##   POST  <index>/type/id 값
POST staff/type1/1
{
  "name" : "mike",
  "lastname" : "lee",
  "job" : "operator"
}

 

반응형
반응형

 

 

- 조치  : virtualbox 게스트 확장 팩 설치로 해결 (VBox guest additions install)

- 조치방법 : 

https://chat.openai.com/share/7e8a814d-792f-4a8f-b946-b596d3106760

반응형

'클라우드 > 기타' 카테고리의 다른 글

[Prometheus] 쓸만한 Promql  (0) 2023.02.06
반응형
### ns lookup
kubectl run test-nslookup --image=busybox:1.28 --rm -it --restart=Never -- nslookup <domain>


### curl test 
kubectl run curl --image curlimages/curl -it /bin/sh

 

반응형

'클라우드 > K8S' 카테고리의 다른 글

[k8s-json] json query 맛보기  (0) 2023.02.10
[k8s] Pod의 DNS 주소  (0) 2023.02.08
[k8s]Node Drain - 2 (Pod)  (0) 2023.02.01
[k8s] security context 사용법(with multi-container)  (0) 2023.01.31
[k8s] 신규 인증서 생성, 승인  (0) 2023.01.27
반응형

[위드그로우] 스마트,아이비 어린이 아동 초등학생 바른자세 높이각도조절 책상 : 하로월드 (naver.com)

 

[위드그로우] 스마트,아이비 어린이 아동 초등학생 바른자세 높이각도조절 책상 : 하로월드

높이조절책상,각도조절책상,초등학생책상,학생책상,높낮이조절책상,초등책상,높이조절책상추천,초등학생책상추천,책상의자세트,어린이책상,책상,아이책상,어린이책상

brand.naver.com

 

ㅁ  옵션별 실물

(상세사이즈는 위 쇼핑몰 에서 확인 가능)

 

 

 

 

ㅁ 간략후기

 1. 책상/의자를 최대한 낮게하면 5-6세도 가능할 것 같다. 

     (어정쩡한 놀이책상 10-20만원 주고 사느니, 그냥 한방에 위드그로우 가는 게 낫다)

 2. 의자가 편하고 쓸만하다. 커버 + 팔걸이까지 사은품 받았다.

 - > 허리환자로 살아본 20년 경험상, 어렸을때 부터 좌식 생활을 하지 않는것이 허리 건강에 좋다.

 3. 책상 사이즈가 작고,귀여워서 아이 친화 적이다. 

 -> 책상에서 노는걸 즐겨한다, 책상에서 아직 공부를 해본적이 없으니  당연하다

     아이는 책상은 넘버블럭스를 하는 자리라 생각한다.

 


 

반응형

'이것저것' 카테고리의 다른 글

[정선근 TV] 척추 디스크의 생명  (0) 2023.02.24
김대석 셰프 레시피 정리 - 나물편  (0) 2022.12.24
MIIMBOT 사용 후기  (0) 2022.12.24

+ Recent posts