You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/03/23 03:03:26 UTC
[shardingsphere] branch master updated: add metrics e2e test for JDBC that use agent (#24769)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 858305dc04b add metrics e2e test for JDBC that use agent (#24769)
858305dc04b is described below
commit 858305dc04b8ceb19b68a56f558b2659d864c722
Author: jiangML <10...@qq.com>
AuthorDate: Thu Mar 23 11:03:19 2023 +0800
add metrics e2e test for JDBC that use agent (#24769)
---
.github/workflows/e2e-agent.yml | 3 +
test/e2e/agent/jdbc-project/pom.xml | 6 -
.../agent/jdbc/project/JdbcProjectApplication.java | 20 ---
.../jdbc/project/controller/OrderController.java | 7 +-
.../e2e/agent/jdbc/project/mapper/OrderMapper.java | 97 ---------------
.../agent/jdbc/project/service/OrderService.java | 3 +-
.../project/service/impl/OrderServiceImpl.java | 134 +++++++++++++++------
.../agent/jdbc/project/vo/response/HttpResult.java | 1 -
.../jdbc/project/vo/{ => response}/ResponseVo.java | 2 +-
.../resources/META-INF/mappers/OrderMapper.xml | 73 -----------
.../src/main/resources/application.yml | 4 -
.../e2e/agent/common/AgentTestActionExtension.java | 7 +-
.../e2e/agent/common/env/E2ETestEnvironment.java | 17 +--
test/e2e/agent/plugins/logging/file/pom.xml | 14 +--
.../file/src/test/resources/docker/jdbc/Dockerfile | 2 +-
test/e2e/agent/plugins/metrics/prometheus/pom.xml | 130 +++++++++++++++++++-
.../test/e2e/agent/metrics/MetricsPluginE2EIT.java | 3 +-
.../metrics/cases/IntegrationTestCasesLoader.java | 5 +-
.../test/resources/cases/{ => jdbc}/build_info.xml | 0
.../jdbc_meta_data_info.xml} | 5 +-
.../cases/{build_info.xml => jdbc/jdbc_state.xml} | 4 +-
.../jdbc_statement_execute_errors_total.xml} | 6 +-
.../jdbc_statement_execute_latency_millis.xml} | 4 +-
.../jdbc_statement_execute_total.xml} | 6 +-
.../jdbc_transactions_total.xml} | 6 +-
.../cases/{ => jdbc}/parsed_sql_total.xml | 1 -
.../cases/{ => jdbc}/routed_result_total.xml | 0
.../cases/{ => jdbc}/routed_sql_total.xml | 0
.../resources/cases/{ => proxy}/build_info.xml | 0
.../cases/{ => proxy}/parsed_sql_total.xml | 0
.../{ => proxy}/proxy_current_connections.xml | 0
.../{ => proxy}/proxy_execute_errors_total.xml | 0
.../{ => proxy}/proxy_execute_latency_millis.xml | 0
.../cases/{ => proxy}/proxy_meta_data_info.xml | 0
.../cases/{ => proxy}/proxy_requests_total.xml | 0
.../resources/cases/{ => proxy}/proxy_state.xml | 0
.../cases/{ => proxy}/proxy_transactions_total.xml | 0
.../cases/{ => proxy}/routed_result_total.xml | 0
.../cases/{ => proxy}/routed_sql_total.xml | 0
.../src/test/resources/docker/jdbc/Dockerfile | 2 +-
.../resources/docker/jdbc/conf}/application.yml | 9 +-
.../conf/config-db.yaml => jdbc/conf/config.yaml} | 18 +--
.../src/test/resources/docker/jdbc/conf/start.sh | 54 +++++++++
.../resources/docker/{ => jdbc}/docker-compose.yml | 27 ++---
.../docker/prometheus/conf/prometheus.yml | 2 +-
.../test/resources/docker/proxy}/Dockerfile | 4 +-
.../resources/docker/proxy/conf/config-db.yaml | 4 +-
.../docker/{ => proxy}/docker-compose.yml | 16 +--
.../src/test/resources/env/engine-env.properties | 8 ++
49 files changed, 366 insertions(+), 338 deletions(-)
diff --git a/.github/workflows/e2e-agent.yml b/.github/workflows/e2e-agent.yml
index dc1ab5f6ec4..eef95775029 100644
--- a/.github/workflows/e2e-agent.yml
+++ b/.github/workflows/e2e-agent.yml
@@ -78,6 +78,9 @@ jobs:
- adapter: jdbc
feature: logging
plugin: file
+ - adapter: jdbc
+ feature: metrics
+ plugin: prometheus
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
diff --git a/test/e2e/agent/jdbc-project/pom.xml b/test/e2e/agent/jdbc-project/pom.xml
index 6f5cb37933c..8a17647de06 100644
--- a/test/e2e/agent/jdbc-project/pom.xml
+++ b/test/e2e/agent/jdbc-project/pom.xml
@@ -29,7 +29,6 @@
<properties>
<spring-boot.version>2.7.9</spring-boot.version>
- <mybatis-spring-boot-starter.version>2.3.0</mybatis-spring-boot-starter.version>
</properties>
<dependencyManagement>
@@ -72,11 +71,6 @@
<artifactId>logback-classic</artifactId>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>${mybatis-spring-boot-starter.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core</artifactId>
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/JdbcProjectApplication.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/JdbcProjectApplication.java
index e0eded93d49..57da8af9358 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/JdbcProjectApplication.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/JdbcProjectApplication.java
@@ -17,35 +17,15 @@
package org.apache.shardingsphere.test.e2e.agent.jdbc.project;
-import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.Bean;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
/**
* Jdbc project application.
*/
@SpringBootApplication
-@MapperScan("org.apache.shardingsphere.test.e2e.agent.jdbc.project.mapper")
-@EnableTransactionManagement
public class JdbcProjectApplication {
- /**
- * Create platform transaction manager bean.
- *
- * @param dataSource data source
- * @return platform transaction manager
- */
- @Bean
- public PlatformTransactionManager txManager(final DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
// CHECKSTYLE:OFF
public static void main(final String[] args) {
SpringApplication.run(JdbcProjectApplication.class, args);
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/controller/OrderController.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/controller/OrderController.java
index 988251b1a40..99031d63238 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/controller/OrderController.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/controller/OrderController.java
@@ -70,7 +70,12 @@ public class OrderController extends AbstractRestController {
long index = 0;
while (index++ < 100) {
OrderEntity order = new OrderEntity(index, index, "OK");
- orderService.insert(order, 0 == (index & 1) ? StatementType.STATEMENT : StatementType.PREPARED);
+ orderService.insert(order, 0 == (index & 1) ? StatementType.STATEMENT : StatementType.PREPARED, 0 == index % 5);
+ }
+ index = 0;
+ while (index++ < 10) {
+ OrderEntity order = new OrderEntity(index, index, "Fail");
+ orderService.insert(order, 0 == (index & 1) ? StatementType.STATEMENT : StatementType.PREPARED, false);
}
return success();
}
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/mapper/OrderMapper.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/mapper/OrderMapper.java
deleted file mode 100644
index 56d21562ef0..00000000000
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/mapper/OrderMapper.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.test.e2e.agent.jdbc.project.mapper;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity;
-
-import java.util.Collection;
-
-/**
- * Order mapper.
- */
-@Mapper
-public interface OrderMapper {
-
- /**
- * Create table.
- */
- void createTable();
-
- /**
- * Drop table.
- */
- void dropTable();
-
- /**
- * Insert with statement.
- *
- * @param order order
- */
- void insertWithStatement(OrderEntity order);
-
- /**
- * Insert with prepared statement.
- *
- * @param order order
- */
- void insertWithPreparedStatement(OrderEntity order);
-
- /**
- * Delete with statement.
- *
- * @param orderId order id
- */
- void deleteWithStatement(@Param("orderId") Long orderId);
-
- /**
- * Delete with prepared statement.
- *
- * @param orderId order id
- */
- void deleteWithPreparedStatement(@Param("orderId") Long orderId);
-
- /**
- * Select all with statement.
- *
- * @return orders
- */
- Collection<OrderEntity> selectAllWithStatement();
-
- /**
- * Select all with prepared statement.
- *
- * @return orders
- */
- Collection<OrderEntity> selectAllWithPreparedStatement();
-
- /**
- * Update with statement.
- *
- * @param order order
- */
- void updateWithStatement(OrderEntity order);
-
- /**
- * Update with prepared statement.
- *
- * @param order order
- */
- void updateWithPreparedStatement(OrderEntity order);
-}
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/OrderService.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/OrderService.java
index ee9a4b7ab36..baf57b8cd94 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/OrderService.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/OrderService.java
@@ -42,8 +42,9 @@ public interface OrderService {
*
* @param order order
* @param statementType statement type
+ * @param isRollback is rollback
*/
- void insert(OrderEntity order, StatementType statementType);
+ void insert(OrderEntity order, StatementType statementType, boolean isRollback);
/**
* Delete.
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/impl/OrderServiceImpl.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/impl/OrderServiceImpl.java
index e6061cddbb0..a9a44114ad7 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/impl/OrderServiceImpl.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/service/impl/OrderServiceImpl.java
@@ -19,12 +19,19 @@ package org.apache.shardingsphere.test.e2e.agent.jdbc.project.service.impl;
import org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity;
import org.apache.shardingsphere.test.e2e.agent.jdbc.project.enums.StatementType;
-import org.apache.shardingsphere.test.e2e.agent.jdbc.project.mapper.OrderMapper;
import org.apache.shardingsphere.test.e2e.agent.jdbc.project.service.OrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
/**
* Order service impl.
@@ -33,69 +40,116 @@ import java.util.Collection;
public class OrderServiceImpl implements OrderService {
@Resource
- private OrderMapper orderMapper;
+ private DataSource dataSource;
@Override
public void createTable() {
- orderMapper.createTable();
+ String sql = "CREATE TABLE IF NOT EXISTS t_order (order_id BIGINT NOT NULL, user_id BIGINT DEFAULT NULL, status VARCHAR(32) DEFAULT NULL, PRIMARY KEY (order_id))";
+ execute(sql, true, false);
}
@Override
public void dropTable() {
- orderMapper.dropTable();
+ String sql = "DROP TABLE IF EXISTS t_order";
+ execute(sql, true, false);
}
@Override
- public void insert(final OrderEntity order, final StatementType statementType) {
- switch (statementType) {
- case STATEMENT:
- orderMapper.insertWithStatement(order);
- break;
- case PREPARED:
- orderMapper.insertWithPreparedStatement(order);
- break;
- default:
- throw new UnsupportedOperationException("Unsupported operation");
+ public void insert(final OrderEntity order, final StatementType statementType, final boolean isRollback) {
+ if (StatementType.STATEMENT == statementType) {
+ String sql = "INSERT INTO t_order (order_id, user_id, status) VALUES (?, ?, ?)";
+ try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
+ connection.setAutoCommit(false);
+ preparedStatement.setLong(1, order.getOrderId());
+ preparedStatement.setLong(2, order.getUserId());
+ preparedStatement.setString(3, order.getStatus());
+ preparedStatement.executeUpdate();
+ if (isRollback) {
+ connection.rollback();
+ } else {
+ connection.commit();
+ }
+ } catch (final SQLException ignored) {
+ }
+ } else if (StatementType.PREPARED == statementType) {
+ String sql = String.format("INSERT INTO t_order (order_id, user_id, status) VALUES (%d, %d, '%s')", order.getOrderId(), order.getUserId(), order.getStatus());
+ execute(sql, false, isRollback);
}
}
@Override
- public void delete(final Long id, final StatementType statementType) {
- switch (statementType) {
- case STATEMENT:
- orderMapper.deleteWithStatement(id);
- break;
- case PREPARED:
- orderMapper.deleteWithPreparedStatement(id);
- break;
- default:
- throw new UnsupportedOperationException("Unsupported operation");
+ public void delete(final Long orderId, final StatementType statementType) {
+ if (StatementType.STATEMENT == statementType) {
+ String sql = "DELETE FROM t_order WHERE order_id=?";
+ try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
+ preparedStatement.setLong(1, orderId);
+ preparedStatement.executeUpdate();
+ } catch (final SQLException ignored) {
+ }
+ } else if (StatementType.PREPARED == statementType) {
+ String sql = String.format("DELETE FROM t_order WHERE order_id=%d", orderId);
+ execute(sql, true, false);
}
}
@Override
public void update(final OrderEntity order, final StatementType statementType) {
- switch (statementType) {
- case STATEMENT:
- orderMapper.updateWithStatement(order);
- break;
- case PREPARED:
- orderMapper.updateWithPreparedStatement(order);
- break;
- default:
- throw new UnsupportedOperationException("Unsupported operation");
+ if (StatementType.STATEMENT == statementType) {
+ String sql = "UPDATE t_order SET status = ? WHERE order_id =?";
+ try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
+ connection.setAutoCommit(false);
+ preparedStatement.setString(1, order.getStatus());
+ preparedStatement.setLong(2, order.getOrderId());
+ preparedStatement.executeUpdate();
+ connection.commit();
+ } catch (final SQLException ignored) {
+ }
+ } else if (StatementType.PREPARED == statementType) {
+ String sql = String.format("UPDATE t_order SET status = '%s' WHERE order_id=%d", order.getStatus(), order.getOrderId());
+ execute(sql, false, false);
}
}
@Override
public Collection<OrderEntity> selectAll(final StatementType statementType) {
- switch (statementType) {
- case STATEMENT:
- return orderMapper.selectAllWithStatement();
- case PREPARED:
- return orderMapper.selectAllWithPreparedStatement();
- default:
- throw new UnsupportedOperationException("Unsupported operation");
+ String sql = "SELECT * FROM t_order";
+ if (StatementType.STATEMENT == statementType) {
+ try (Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
+ return getOrders(preparedStatement.executeQuery());
+ } catch (final SQLException ignored) {
+ }
+ } else if (StatementType.PREPARED == statementType) {
+ try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) {
+ return getOrders(statement.executeQuery(sql));
+ } catch (final SQLException ignored) {
+ }
+ }
+ return Collections.emptyList();
+ }
+
+ private Collection<OrderEntity> getOrders(final ResultSet resultSet) throws SQLException {
+ Collection<OrderEntity> result = new LinkedList<>();
+ while (resultSet.next()) {
+ OrderEntity orderEntity = new OrderEntity(resultSet.getLong(1), resultSet.getLong(2), resultSet.getString(3));
+ result.add(orderEntity);
+ }
+ return result;
+ }
+
+ private void execute(final String sql, final boolean autoCommit, final boolean isRollback) {
+ try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) {
+ if (autoCommit) {
+ statement.execute(sql);
+ } else {
+ connection.setAutoCommit(false);
+ statement.execute(sql);
+ if (isRollback) {
+ connection.rollback();
+ } else {
+ connection.commit();
+ }
+ }
+ } catch (final SQLException ignored) {
}
}
}
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/HttpResult.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/HttpResult.java
index 7bbb0557f8c..33df77b594c 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/HttpResult.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/HttpResult.java
@@ -42,5 +42,4 @@ public class HttpResult<T> implements Serializable {
this.message = message;
this.data = data;
}
-
}
diff --git a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/ResponseVo.java b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/ResponseVo.java
similarity index 98%
rename from test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/ResponseVo.java
rename to test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/ResponseVo.java
index 95a075050a3..27f5f5760bb 100644
--- a/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/ResponseVo.java
+++ b/test/e2e/agent/jdbc-project/src/main/java/org/apache/shardingsphere/test/e2e/agent/jdbc/project/vo/response/ResponseVo.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.agent.jdbc.project.vo;
+package org.apache.shardingsphere.test.e2e.agent.jdbc.project.vo.response;
import lombok.Getter;
import lombok.Setter;
diff --git a/test/e2e/agent/jdbc-project/src/main/resources/META-INF/mappers/OrderMapper.xml b/test/e2e/agent/jdbc-project/src/main/resources/META-INF/mappers/OrderMapper.xml
deleted file mode 100644
index 74d200ace3a..00000000000
--- a/test/e2e/agent/jdbc-project/src/main/resources/META-INF/mappers/OrderMapper.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one or more
- ~ contributor license agreements. See the NOTICE file distributed with
- ~ this work for additional information regarding copyright ownership.
- ~ The ASF licenses this file to You under the Apache License, Version 2.0
- ~ (the "License"); you may not use this file except in compliance with
- ~ the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.apache.shardingsphere.test.e2e.agent.jdbc.project.mapper.OrderMapper">
-
- <resultMap id="BaseResultMap" type="org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity">
- <id column="order_id" jdbcType="BIGINT" property="orderId" />
- <result column="user_id" jdbcType="BIGINT" property="userId" />
- <result column="status" property="status" />
- </resultMap>
-
- <update id="createTable">
- CREATE TABLE IF NOT EXISTS t_order (
- order_id BIGINT NOT NULL,
- user_id BIGINT DEFAULT NULL,
- status VARCHAR(32) DEFAULT NULL,
- PRIMARY KEY (order_id)
- );
- </update>
-
- <update id="dropTable">
- DROP TABLE IF EXISTS t_order;
- </update>
-
- <insert id="insertWithStatement" parameterType="org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity" statementType="STATEMENT">
- insert into t_order(order_id, user_id, status) value (${orderId}, ${userId}, '${status}')
- </insert>
-
- <insert id="insertWithPreparedStatement" parameterType="org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity" statementType="PREPARED">
- insert into t_order(order_id, user_id, status) value (#{orderId}, #{userId}, #{status})
- </insert>
-
- <delete id="deleteWithStatement" parameterType="java.lang.Long" statementType="STATEMENT">
- delete from t_order where order_id=${orderId}
- </delete>
-
- <delete id="deleteWithPreparedStatement" parameterType="java.lang.Long" statementType="PREPARED">
- delete from t_order where order_id=#{orderId}
- </delete>
-
- <select id="selectAllWithStatement" resultMap="BaseResultMap" statementType="STATEMENT">
- select * from t_order
- </select>
-
- <select id="selectAllWithPreparedStatement" resultMap="BaseResultMap" statementType="PREPARED">
- select * from t_order
- </select>
-
- <update id="updateWithStatement" parameterType="org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity" statementType="STATEMENT">
- update t_order set status='${status}' where order_id=${orderId}
- </update>
-
- <update id="updateWithPreparedStatement" parameterType="org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity.OrderEntity" statementType="PREPARED">
- update t_order set status=#{status} where order_id=#{orderId}
- </update>
-
-</mapper>
diff --git a/test/e2e/agent/jdbc-project/src/main/resources/application.yml b/test/e2e/agent/jdbc-project/src/main/resources/application.yml
index 00c04692381..c4721e30e93 100644
--- a/test/e2e/agent/jdbc-project/src/main/resources/application.yml
+++ b/test/e2e/agent/jdbc-project/src/main/resources/application.yml
@@ -18,10 +18,6 @@
server:
port: 80
-mybatis:
- mapper-locations: classpath*:META-INF/mappers/*Mapper.xml
- type-aliases-package: org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity
-
logging:
config: classpath:logback.xml
diff --git a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/AgentTestActionExtension.java b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/AgentTestActionExtension.java
index 4bd822708a5..e8cdb037406 100644
--- a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/AgentTestActionExtension.java
+++ b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/AgentTestActionExtension.java
@@ -32,8 +32,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assumptions.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
/**
@@ -57,11 +55,8 @@ public final class AgentTestActionExtension implements BeforeEachCallback {
private void checkEnvironment() {
assumeTrue(E2ETestEnvironment.getInstance().isEnvironmentPrepared());
- assumeFalse(E2ETestEnvironment.getInstance().isInitializationFailed());
E2ETestEnvironment.getInstance().prepareEnvironment();
- if (E2ETestEnvironment.getInstance().isAdaptedProxy()) {
- assertNotNull(E2ETestEnvironment.getInstance().getDataSource());
- }
+ assumeTrue(E2ETestEnvironment.getInstance().isInitialized());
}
private void requestProxy() {
diff --git a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/env/E2ETestEnvironment.java b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/env/E2ETestEnvironment.java
index 33d0c75859f..c744d348739 100644
--- a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/env/E2ETestEnvironment.java
+++ b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/env/E2ETestEnvironment.java
@@ -34,6 +34,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
@Getter
@Slf4j
@@ -47,10 +48,12 @@ public final class E2ETestEnvironment {
private DataSource dataSource;
- private boolean initializationFailed;
+ private boolean isInitialized;
private boolean isAdaptedProxy;
+ private final AtomicBoolean prepareFlag = new AtomicBoolean();
+
private E2ETestEnvironment() {
props = EnvironmentProperties.loadProperties("env/engine-env.properties");
isEnvironmentPrepared = props.getProperty("it.env.value").equals(props.getProperty("it.env.type"));
@@ -70,12 +73,14 @@ public final class E2ETestEnvironment {
* Prepare environment.
*/
public void prepareEnvironment() {
- if (isAdaptedProxy()) {
- createDataSource();
+ if (!prepareFlag.compareAndSet(false, true)) {
return;
}
- if (isEnvironmentPrepared && !initializationFailed) {
- initializationFailed = !waitForJdbcEnvironmentReady();
+ if (isAdaptedProxy()) {
+ createDataSource();
+ isInitialized = null != dataSource;
+ } else {
+ isInitialized = waitForJdbcEnvironmentReady();
}
}
@@ -83,8 +88,6 @@ public final class E2ETestEnvironment {
if (isEnvironmentPrepared && null == dataSource) {
if (waitForProxyEnvironmentReady(props)) {
dataSource = createHikariCP(props);
- } else {
- initializationFailed = true;
}
}
}
diff --git a/test/e2e/agent/plugins/logging/file/pom.xml b/test/e2e/agent/plugins/logging/file/pom.xml
index 2d0cdf9aa25..d323925aa23 100644
--- a/test/e2e/agent/plugins/logging/file/pom.xml
+++ b/test/e2e/agent/plugins/logging/file/pom.xml
@@ -86,7 +86,7 @@
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
- <id>copy-dockerfile</id>
+ <id>copy-resources</id>
<goals>
<goal>copy-resources</goal>
</goals>
@@ -100,18 +100,6 @@
<include>Dockerfile</include>
</includes>
</resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-resources</id>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <phase>validate</phase>
- <configuration>
- <outputDirectory>${docker.proxy.context.directory}</outputDirectory>
- <resources>
<resource>
<directory>${project.basedir}/../../../../../../distribution/proxy/target/</directory>
<includes>
diff --git a/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile b/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile
index d917f2ffd9e..e734fd67a0d 100644
--- a/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile
+++ b/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile
@@ -24,4 +24,4 @@ COPY shardingsphere-jdbc-app /opt/shardingsphere-jdbc-app
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait && chmod +x /opt/shardingsphere-jdbc-app/start.sh
WORKDIR /opt/shardingsphere-jdbc-app
-ENTRYPOINT ./start.sh $JAR_FILE_NAME --agent && tail -f ./logs/stdout.log
+ENTRYPOINT /wait && ./start.sh $JAR_FILE_NAME --agent && tail -f ./logs/stdout.log
diff --git a/test/e2e/agent/plugins/metrics/prometheus/pom.xml b/test/e2e/agent/plugins/metrics/prometheus/pom.xml
index 4fe42e44775..80e3fe331ac 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/pom.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/pom.xml
@@ -30,6 +30,11 @@
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
<mysql-connector-java.version>8.0.31</mysql-connector-java.version>
+
+ <docker.proxy.context.directory>target/proxy</docker.proxy.context.directory>
+ <docker.proxy.compose.file>${project.basedir}/src/test/resources/docker/proxy/docker-compose.yml</docker.proxy.compose.file>
+ <docker.jdbc.context.directory>target/jdbc</docker.jdbc.context.directory>
+ <docker.jdbc.compose.file>${project.basedir}/src/test/resources/docker/jdbc/docker-compose.yml</docker.jdbc.compose.file>
</properties>
<dependencies>
@@ -88,10 +93,19 @@
</goals>
<phase>validate</phase>
<configuration>
- <outputDirectory>target/</outputDirectory>
+ <outputDirectory>${docker.proxy.context.directory}</outputDirectory>
<resources>
+ <resource>
+ <directory>${project.basedir}/src/test/resources/docker/proxy/</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ </resource>
<resource>
<directory>${project.basedir}/../../../../../../distribution/proxy/target/</directory>
+ <includes>
+ <include>${docker.proxy.distribution.name}.tar.gz</include>
+ </includes>
</resource>
</resources>
</configuration>
@@ -108,6 +122,8 @@
<buildArgs>
<APP_NAME>${docker.proxy.distribution.name}</APP_NAME>
</buildArgs>
+ <contextDirectory>${docker.proxy.context.directory}</contextDirectory>
+ <dockerfile>${docker.proxy.context.directory}/Dockerfile</dockerfile>
</configuration>
<executions>
<execution>
@@ -129,7 +145,115 @@
</goals>
<phase>pre-integration-test</phase>
<configuration>
- <composeFile>${project.basedir}/src/test/resources/docker/docker-compose.yml</composeFile>
+ <composeFile>${docker.proxy.compose.file}</composeFile>
+ <detachedMode>true</detachedMode>
+ </configuration>
+ </execution>
+ <execution>
+ <id>agent-metrics-down</id>
+ <goals>
+ <goal>down</goal>
+ </goals>
+ <phase>post-integration-test</phase>
+ <configuration>
+ <composeFile>${docker.proxy.compose.file}</composeFile>
+ <removeVolumes>true</removeVolumes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>it.env.jdbc.prometheus</id>
+ <properties>
+ <it.env>prometheus</it.env>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dockerfile</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${docker.jdbc.context.directory}</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/test/resources/docker/jdbc</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${docker.jdbc.context.directory}/shardingsphere-jdbc-app</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/../../../jdbc-project/target/</directory>
+ <includes>
+ <include>${docker.jdbc.distribution.name}.jar</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/src/test/resources/docker/jdbc/conf</directory>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/../../../../../../distribution/agent/target/apache-shardingsphere-${project.version}-shardingsphere-agent-bin/</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ <configuration>
+ <repository>apache/shardingsphere-jdbc-agent-metrics-test</repository>
+ <tag>${project.version}</tag>
+ <tag>latest</tag>
+ <buildArgs>
+ <APP_NAME>${docker.jdbc.distribution.name}</APP_NAME>
+ </buildArgs>
+ <contextDirectory>${docker.jdbc.context.directory}</contextDirectory>
+ <dockerfile>${docker.jdbc.context.directory}/Dockerfile</dockerfile>
+ </configuration>
+ <executions>
+ <execution>
+ <id>shardingsphere-jdbc-bin</id>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>com.dkanejs.maven.plugins</groupId>
+ <artifactId>docker-compose-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>agent-metrics-up</id>
+ <goals>
+ <goal>up</goal>
+ </goals>
+ <phase>pre-integration-test</phase>
+ <configuration>
+ <composeFile>${docker.jdbc.compose.file}</composeFile>
<detachedMode>true</detachedMode>
</configuration>
</execution>
@@ -140,7 +264,7 @@
</goals>
<phase>post-integration-test</phase>
<configuration>
- <composeFile>${project.basedir}/src/test/resources/docker/docker-compose.yml</composeFile>
+ <composeFile>${docker.jdbc.compose.file}</composeFile>
<removeVolumes>true</removeVolumes>
</configuration>
</execution>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/MetricsPluginE2EIT.java b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/MetricsPluginE2EIT.java
index 510b26d9350..61b8e1b8fe0 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/MetricsPluginE2EIT.java
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/MetricsPluginE2EIT.java
@@ -81,7 +81,8 @@ public final class MetricsPluginE2EIT {
@Override
public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
- return IntegrationTestCasesLoader.getInstance().loadIntegrationTestCases().stream().map(Arguments::of);
+ String adapter = E2ETestEnvironment.getInstance().getProps().getProperty("it.env.adapter", "proxy");
+ return IntegrationTestCasesLoader.getInstance().loadIntegrationTestCases(adapter).stream().map(Arguments::of);
}
}
}
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/cases/IntegrationTestCasesLoader.java b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/cases/IntegrationTestCasesLoader.java
index 3ab4a1d9df5..d7e08f2771e 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/cases/IntegrationTestCasesLoader.java
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/java/org/apache/shardingsphere/test/e2e/agent/metrics/cases/IntegrationTestCasesLoader.java
@@ -62,15 +62,16 @@ public final class IntegrationTestCasesLoader {
/**
* Load integration test cases.
*
+ * @param adapter adapter proxy or jdbc
* @return integration test cases
*/
@SneakyThrows({IOException.class, URISyntaxException.class, JAXBException.class})
- public Collection<MetricTestCase> loadIntegrationTestCases() {
+ public Collection<MetricTestCase> loadIntegrationTestCases(final String adapter) {
if (null != integrationTestCases) {
return integrationTestCases;
}
integrationTestCases = new LinkedList<>();
- URL url = Objects.requireNonNull(IntegrationTestCasesLoader.class.getClassLoader().getResource("cases/"));
+ URL url = Objects.requireNonNull(IntegrationTestCasesLoader.class.getClassLoader().getResource(String.format("cases/%s", adapter)));
Collection<File> files = getFiles(url);
for (File each : files) {
integrationTestCases.addAll(unmarshal(each.getPath()).getTestCases());
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/build_info.xml
similarity index 100%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/build_info.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_meta_data_info.xml
similarity index 75%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_meta_data_info.xml
index fd76020f6cb..037f344bf99 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_meta_data_info.xml
@@ -17,7 +17,8 @@
-->
<integration-test-cases>
- <test-case metric-name="build_info" metric-type="gauge">
- <query-assertion metric="build_info" query="build_info{name='ShardingSphere'}" />
+ <test-case metric-name="jdbc_meta_data_info" metric-type="gauge">
+ <query-assertion metric="jdbc_meta_data_info" query="jdbc_meta_data_info{}" />
+ <query-assertion metric="jdbc_meta_data_info" query="jdbc_meta_data_info{database='agent-metrics-db', type='storage_unit_count'}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_state.xml
similarity index 86%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_state.xml
index fd76020f6cb..1a6e8696643 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_state.xml
@@ -17,7 +17,7 @@
-->
<integration-test-cases>
- <test-case metric-name="build_info" metric-type="gauge">
- <query-assertion metric="build_info" query="build_info{name='ShardingSphere'}" />
+ <test-case metric-name="jdbc_state" metric-type="gauge">
+ <query-assertion metric="jdbc_state" query="jdbc_state{}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_errors_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_errors_total.xml
similarity index 64%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_errors_total.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_errors_total.xml
index 32347e8756d..b9eb6d15c54 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_errors_total.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_errors_total.xml
@@ -17,7 +17,9 @@
-->
<integration-test-cases>
- <test-case metric-name="proxy_execute_errors_total" metric-type="counter">
- <query-assertion metric="proxy_execute_errors_total" query="proxy_execute_errors_total{}" />
+ <test-case metric-name="jdbc_statement_execute_errors_total" metric-type="counter">
+ <query-assertion metric="jdbc_statement_execute_errors_total" query="jdbc_statement_execute_errors_total{}" />
+ <query-assertion metric="jdbc_statement_execute_errors_total" query="jdbc_statement_execute_errors_total{statement_type='prepared_statement'}" />
+ <query-assertion metric="jdbc_statement_execute_errors_total" query="jdbc_statement_execute_errors_total{statement_type='statement'}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_latency_millis.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_latency_millis.xml
similarity index 80%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_latency_millis.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_latency_millis.xml
index 2acd0cb6b59..c4de8f29bd8 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_latency_millis.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_latency_millis.xml
@@ -17,7 +17,7 @@
-->
<integration-test-cases>
- <test-case metric-name="proxy_execute_latency_millis" metric-type="histogram">
- <query-assertion metric="proxy_execute_latency_millis_bucket" query="proxy_execute_latency_millis_bucket{}" />
+ <test-case metric-name="jdbc_statement_execute_latency_millis" metric-type="histogram">
+ <query-assertion metric="jdbc_statement_execute_latency_millis_bucket" query="jdbc_statement_execute_latency_millis_bucket{}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_total.xml
similarity index 67%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_total.xml
index fd76020f6cb..3acd5744550 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_statement_execute_total.xml
@@ -17,7 +17,9 @@
-->
<integration-test-cases>
- <test-case metric-name="build_info" metric-type="gauge">
- <query-assertion metric="build_info" query="build_info{name='ShardingSphere'}" />
+ <test-case metric-name="jdbc_statement_execute_total" metric-type="counter">
+ <query-assertion metric="jdbc_statement_execute_total" query="jdbc_statement_execute_total{}" />
+ <query-assertion metric="jdbc_statement_execute_total" query="jdbc_statement_execute_total{statement_type='prepared_statement'}" />
+ <query-assertion metric="jdbc_statement_execute_total" query="jdbc_statement_execute_total{statement_type='statement'}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_transactions_total.xml
similarity index 70%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_transactions_total.xml
index fd76020f6cb..7f8ebafea29 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/jdbc_transactions_total.xml
@@ -17,7 +17,9 @@
-->
<integration-test-cases>
- <test-case metric-name="build_info" metric-type="gauge">
- <query-assertion metric="build_info" query="build_info{name='ShardingSphere'}" />
+ <test-case metric-name="jdbc_transactions_total" metric-type="counter">
+ <query-assertion metric="jdbc_transactions_total" query="jdbc_transactions_total{}" />
+ <query-assertion metric="jdbc_transactions_total" query="jdbc_transactions_total{type='commit'}" />
+ <query-assertion metric="jdbc_transactions_total" query="jdbc_transactions_total{type='rollback'}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/parsed_sql_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/parsed_sql_total.xml
similarity index 93%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/parsed_sql_total.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/parsed_sql_total.xml
index d5a0b8f7d4b..0f1794470a2 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/parsed_sql_total.xml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/parsed_sql_total.xml
@@ -22,6 +22,5 @@
<query-assertion metric="parsed_sql_total" query="parsed_sql_total{type='SELECT'}" />
<query-assertion metric="parsed_sql_total" query="parsed_sql_total{type='DELETE'}" />
<query-assertion metric="parsed_sql_total" query="parsed_sql_total{type='UPDATE'}" />
- <query-assertion metric="parsed_sql_total" query="parsed_sql_total{type='TCL'}" />
</test-case>
</integration-test-cases>
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_result_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/routed_result_total.xml
similarity index 100%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_result_total.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/routed_result_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_sql_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/routed_sql_total.xml
similarity index 100%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_sql_total.xml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/jdbc/routed_sql_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/build_info.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/build_info.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/build_info.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/parsed_sql_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/parsed_sql_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/parsed_sql_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/parsed_sql_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_current_connections.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_current_connections.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_current_connections.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_current_connections.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_errors_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_execute_errors_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_errors_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_execute_errors_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_latency_millis.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_execute_latency_millis.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_execute_latency_millis.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_execute_latency_millis.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_meta_data_info.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_meta_data_info.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_meta_data_info.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_meta_data_info.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_requests_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_requests_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_requests_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_requests_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_state.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_state.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_state.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_state.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_transactions_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_transactions_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy_transactions_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/proxy_transactions_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_result_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/routed_result_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_result_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/routed_result_total.xml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_sql_total.xml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/routed_sql_total.xml
similarity index 100%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/routed_sql_total.xml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/cases/proxy/routed_sql_total.xml
diff --git a/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/Dockerfile
similarity index 93%
copy from test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/Dockerfile
index d917f2ffd9e..e734fd67a0d 100644
--- a/test/e2e/agent/plugins/logging/file/src/test/resources/docker/jdbc/Dockerfile
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/Dockerfile
@@ -24,4 +24,4 @@ COPY shardingsphere-jdbc-app /opt/shardingsphere-jdbc-app
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait && chmod +x /opt/shardingsphere-jdbc-app/start.sh
WORKDIR /opt/shardingsphere-jdbc-app
-ENTRYPOINT ./start.sh $JAR_FILE_NAME --agent && tail -f ./logs/stdout.log
+ENTRYPOINT /wait && ./start.sh $JAR_FILE_NAME --agent && tail -f ./logs/stdout.log
diff --git a/test/e2e/agent/jdbc-project/src/main/resources/application.yml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/application.yml
similarity index 78%
copy from test/e2e/agent/jdbc-project/src/main/resources/application.yml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/application.yml
index 00c04692381..389a37be2ac 100644
--- a/test/e2e/agent/jdbc-project/src/main/resources/application.yml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/application.yml
@@ -18,14 +18,7 @@
server:
port: 80
-mybatis:
- mapper-locations: classpath*:META-INF/mappers/*Mapper.xml
- type-aliases-package: org.apache.shardingsphere.test.e2e.agent.jdbc.project.entity
-
-logging:
- config: classpath:logback.xml
-
spring:
datasource:
driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
- url: jdbc:shardingsphere:classpath:config.yaml
+ url: jdbc:shardingsphere:absolutepath:/opt/shardingsphere-jdbc-app/config.yaml
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/config.yaml
similarity index 75%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/config.yaml
index 06dbc913321..15067b04b2e 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/config.yaml
@@ -19,23 +19,17 @@ databaseName: agent-metrics-db
dataSources:
ds_0:
- url: jdbc:mysql://mysql.agent.metrics.host:3306/agent_metrics_db_0?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+ jdbcUrl: jdbc:mysql://mysql.agent.jdbc.metrics.host:3306/agent_metrics_db_0?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
username: root
password:
- connectionTimeoutMilliseconds: 30000
- idleTimeoutMilliseconds: 60000
- maxLifetimeMilliseconds: 1800000
- maxPoolSize: 10
- minPoolSize: 2
ds_1:
- url: jdbc:mysql://mysql.agent.metrics.host:3306/agent_metrics_db_1?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ dataSourceClassName: com.zaxxer.hikari.HikariDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+ jdbcUrl: jdbc:mysql://mysql.agent.jdbc.metrics.host:3306/agent_metrics_db_1?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
username: root
password:
- connectionTimeoutMilliseconds: 30000
- idleTimeoutMilliseconds: 60000
- maxLifetimeMilliseconds: 1800000
- maxPoolSize: 10
- minPoolSize: 2
rules:
- !SHARDING
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/start.sh b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/start.sh
new file mode 100644
index 00000000000..46bdf181936
--- /dev/null
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/conf/start.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+DEPLOY_DIR="$(pwd)"
+LOGS_DIR=${DEPLOY_DIR}/logs
+if [ ! -d "${LOGS_DIR}" ]; then
+ mkdir "${LOGS_DIR}"
+fi
+STDOUT_FILE=${LOGS_DIR}/stdout.log
+JAR_FILE=$1
+
+AGENT_FILE=${DEPLOY_DIR}/agent/shardingsphere-agent.jar
+function set_agent_name() {
+ if [ -d "${DEPLOY_DIR}/agent" ]; then
+ AGENT_NAME=$(ls "${DEPLOY_DIR}/agent/shardingsphere-agent"*)
+ if [ -n "${AGENT_NAME}" ]; then
+ AGENT_FILE=${AGENT_NAME}
+ fi
+ fi
+}
+
+AGENT_PARAM="";
+function set_agent_parameter() {
+ if [ -f "$AGENT_FILE" ]; then
+ AGENT_PARAM=" -javaagent:${AGENT_FILE} "
+ fi
+}
+
+for arg in $*
+do
+ if [ "$arg" == "--agent" ] ; then
+ set_agent_name
+ set_agent_parameter
+ break
+ fi
+ let PARAMETER_INDEX+=1
+done
+
+nohup java ${AGENT_PARAM} -jar ${DEPLOY_DIR}/${JAR_FILE} >> ${STDOUT_FILE} 2>&1 &
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/docker-compose.yml
similarity index 70%
copy from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml
copy to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/docker-compose.yml
index 2198002ec8e..ea005fbd808 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/jdbc/docker-compose.yml
@@ -20,10 +20,10 @@ version: "2.1"
services:
mysql:
image: "mysql/mysql-server:5.7"
- container_name: agent-metrics-mysql
+ container_name: agent-jdbc-metrics-mysql
command: ['--sql_mode=', '--default-authentication-plugin=mysql_native_password']
volumes:
- - ../env/mysql:/docker-entrypoint-initdb.d/
+ - ../../env/mysql:/docker-entrypoint-initdb.d/
ports:
- "43060:3306"
environment:
@@ -31,30 +31,29 @@ services:
prometheus:
image: prom/prometheus:v2.41.0
- container_name: agent-prometheus
+ container_name: agent-jdbc-prometheus
restart: always
volumes:
- - ./prometheus/conf:/config
+ - ../prometheus/conf:/config
ports:
- '19090:9090'
links:
- - "shardingsphere-proxy-agent-metrics:shardingsphere.proxy.host"
+ - "shardingsphere-jdbc-agent-metrics:agent.host"
command: ['--config.file=/config/prometheus.yml']
depends_on:
- - shardingsphere-proxy-agent-metrics
+ - shardingsphere-jdbc-agent-metrics
- shardingsphere-proxy-agent-metrics:
- image: apache/shardingsphere-proxy-agent-metrics-test
- container_name: shardingsphere-proxy-agent-metrics
+ shardingsphere-jdbc-agent-metrics:
+ image: apache/shardingsphere-jdbc-agent-metrics-test
+ container_name: shardingsphere-jdbc-agent-metrics
ports:
- - "43070:3307"
- - "43080:3308"
+ - "18080:80"
- "19099:19099"
links:
- - "mysql:mysql.agent.metrics.host"
+ - "mysql:mysql.agent.jdbc.metrics.host"
volumes:
- - ./proxy/conf:/opt/shardingsphere-proxy/conf
- - ./agent/conf:/opt/shardingsphere-proxy/agent/conf
+ - ../agent/conf:/opt/shardingsphere-jdbc-app/agent/conf
+ - ../../../../../target/jdbc/logs:/opt/shardingsphere-jdbc-app/logs
depends_on:
- mysql
environment:
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/prometheus/conf/prometheus.yml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/prometheus/conf/prometheus.yml
index a732bb0ffcc..e46b4370045 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/prometheus/conf/prometheus.yml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/prometheus/conf/prometheus.yml
@@ -32,4 +32,4 @@ scrape_configs:
- job_name: 'shardingsphere-agent'
static_configs:
- - targets: ['shardingsphere.proxy.host:19099']
+ - targets: ['agent.host:19099']
diff --git a/test/e2e/agent/plugins/metrics/prometheus/Dockerfile b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/Dockerfile
similarity index 95%
rename from test/e2e/agent/plugins/metrics/prometheus/Dockerfile
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/Dockerfile
index 8019795ff49..6ccdd7420bb 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/Dockerfile
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/Dockerfile
@@ -15,12 +15,12 @@
# limitations under the License.
#
-FROM eclipse-temurin:8-jdk
+FROM eclipse-temurin:11-jdk
ARG APP_NAME
ENV WAIT_VERSION 2.7.2
-ADD target/${APP_NAME}.tar.gz /opt
+ADD ${APP_NAME}.tar.gz /opt
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait
RUN mv /opt/${APP_NAME} /opt/shardingsphere-proxy
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml
index 06dbc913321..fa801ea614f 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/conf/config-db.yaml
@@ -19,7 +19,7 @@ databaseName: agent-metrics-db
dataSources:
ds_0:
- url: jdbc:mysql://mysql.agent.metrics.host:3306/agent_metrics_db_0?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ url: jdbc:mysql://mysql.agent.proxy.metrics.host:3306/agent_metrics_db_0?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
username: root
password:
connectionTimeoutMilliseconds: 30000
@@ -28,7 +28,7 @@ dataSources:
maxPoolSize: 10
minPoolSize: 2
ds_1:
- url: jdbc:mysql://mysql.agent.metrics.host:3306/agent_metrics_db_1?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ url: jdbc:mysql://mysql.agent.proxy.metrics.host:3306/agent_metrics_db_1?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
username: root
password:
connectionTimeoutMilliseconds: 30000
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/docker-compose.yml
similarity index 81%
rename from test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml
rename to test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/docker-compose.yml
index 2198002ec8e..abec45ee541 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/docker-compose.yml
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/docker/proxy/docker-compose.yml
@@ -20,10 +20,10 @@ version: "2.1"
services:
mysql:
image: "mysql/mysql-server:5.7"
- container_name: agent-metrics-mysql
+ container_name: agent-proxy-metrics-mysql
command: ['--sql_mode=', '--default-authentication-plugin=mysql_native_password']
volumes:
- - ../env/mysql:/docker-entrypoint-initdb.d/
+ - ../../env/mysql:/docker-entrypoint-initdb.d/
ports:
- "43060:3306"
environment:
@@ -31,14 +31,14 @@ services:
prometheus:
image: prom/prometheus:v2.41.0
- container_name: agent-prometheus
+ container_name: agent-proxy-prometheus
restart: always
volumes:
- - ./prometheus/conf:/config
+ - ../prometheus/conf:/config
ports:
- '19090:9090'
links:
- - "shardingsphere-proxy-agent-metrics:shardingsphere.proxy.host"
+ - "shardingsphere-proxy-agent-metrics:agent.host"
command: ['--config.file=/config/prometheus.yml']
depends_on:
- shardingsphere-proxy-agent-metrics
@@ -51,10 +51,10 @@ services:
- "43080:3308"
- "19099:19099"
links:
- - "mysql:mysql.agent.metrics.host"
+ - "mysql:mysql.agent.proxy.metrics.host"
volumes:
- - ./proxy/conf:/opt/shardingsphere-proxy/conf
- - ./agent/conf:/opt/shardingsphere-proxy/agent/conf
+ - ./conf:/opt/shardingsphere-proxy/conf
+ - ../agent/conf:/opt/shardingsphere-proxy/agent/conf
depends_on:
- mysql
environment:
diff --git a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/env/engine-env.properties b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/env/engine-env.properties
index ead6fba9393..19659e0b165 100644
--- a/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/env/engine-env.properties
+++ b/test/e2e/agent/plugins/metrics/prometheus/src/test/resources/env/engine-env.properties
@@ -22,6 +22,14 @@ proxy.url=jdbc:mysql://127.0.0.1:43070/agent-metrics-db?serverTimezone=UTC&useSS
proxy.username=root
proxy.password=root
+jdbc.base.url=http://127.0.0.1:18080
+jdbc.path.create.table=/order/createTable
+jdbc.path.drop.table=/order/dropTable
+jdbc.path.insert=/order/insert
+jdbc.path.update=/order/update
+jdbc.path.select.all=/order/selectAll
+jdbc.path.delete=/order/delete
+
prometheus.metadata.url=http://127.0.0.1:19090/api/v1/metadata
prometheus.query.url=http://127.0.0.1:19090/api/v1/query
collect.data.wait.milliseconds=35000