org.bithon.server.metric.handler.JdbcPoolMetricMessageHandler Maven / Gradle / Ivy
/*
* Copyright 2020 bithon.org
*
* Licensed 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.bithon.server.metric.handler;
import lombok.extern.slf4j.Slf4j;
import org.bithon.server.common.utils.MiscUtils;
import org.bithon.server.meta.storage.IMetaStorage;
import org.bithon.server.metric.DataSourceSchemaManager;
import org.bithon.server.metric.storage.IMetricStorage;
import org.springframework.stereotype.Service;
import java.io.IOException;
/**
* @author [email protected]
* @date 2021/1/10 4:31 下午
*/
@Slf4j
@Service
public class JdbcPoolMetricMessageHandler extends AbstractMetricMessageHandler {
public JdbcPoolMetricMessageHandler(IMetaStorage metaStorage,
IMetricStorage metricStorage,
DataSourceSchemaManager dataSourceSchemaManager) throws IOException {
super("jdbc-pool-metrics",
metaStorage,
metricStorage,
dataSourceSchemaManager);
}
@Override
protected boolean beforeProcess(MetricMessage metricObject) {
//TODO: cache the parse result
MiscUtils.ConnectionString conn = MiscUtils.parseConnectionString(metricObject.getString("connectionString"));
metricObject.set("server", conn.getHostAndPort());
metricObject.set("database", conn.getDatabase());
return true;
}
}