-
Notifications
You must be signed in to change notification settings - Fork 26.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add thread pool metric,and run successfully * add more thread pool metric,and run successfully * delete comment * avoid start import * avoid start import and unused import * avoid check * ut pass * Resolve unit test failures The previous unit test run failed due to the introduction of thread pool metrics, Unit tests now filter thread pool metrics * Spin-off the applicationModel from the DefaultMetric Collector --------- Co-authored-by: dongdong.yang <[email protected]>
- Loading branch information
1 parent
62e96db
commit cc32ebe
Showing
8 changed files
with
209 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,5 +24,6 @@ public enum MetricsCategory { | |
RT, | ||
QPS, | ||
REQUESTS, | ||
THREAD_POOL, | ||
APPLICATION | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
123 changes: 123 additions & 0 deletions
123
...rics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/model/ThreadPoolMetric.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
/* | ||
* 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.dubbo.metrics.model; | ||
|
||
import org.apache.dubbo.common.utils.ConfigUtils; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
import java.util.Objects; | ||
import java.util.concurrent.ThreadPoolExecutor; | ||
|
||
|
||
import static org.apache.dubbo.common.constants.MetricsConstants.TAG_IP; | ||
import static org.apache.dubbo.common.constants.MetricsConstants.TAG_PID; | ||
import static org.apache.dubbo.common.constants.MetricsConstants.TAG_HOSTNAME; | ||
import static org.apache.dubbo.common.constants.MetricsConstants.TAG_APPLICATION_NAME; | ||
import static org.apache.dubbo.common.constants.MetricsConstants.TAG_THREAD_NAME; | ||
import static org.apache.dubbo.common.utils.NetUtils.getLocalHost; | ||
import static org.apache.dubbo.common.utils.NetUtils.getLocalHostName; | ||
|
||
public class ThreadPoolMetric { | ||
|
||
private String applicationName; | ||
|
||
private String threadPoolName; | ||
|
||
private ThreadPoolExecutor threadPoolExecutor; | ||
|
||
public ThreadPoolMetric(String applicationName, String threadPoolName, ThreadPoolExecutor threadPoolExecutor) { | ||
this.applicationName = applicationName; | ||
this.threadPoolExecutor = threadPoolExecutor; | ||
this.threadPoolName = threadPoolName; | ||
} | ||
|
||
public String getThreadPoolName() { | ||
return threadPoolName; | ||
} | ||
|
||
public void setThreadPoolName(String threadPoolName) { | ||
this.threadPoolName = threadPoolName; | ||
} | ||
|
||
public ThreadPoolExecutor getThreadPoolExecutor() { | ||
return threadPoolExecutor; | ||
} | ||
|
||
public void setThreadPoolExecutor(ThreadPoolExecutor threadPoolExecutor) { | ||
this.threadPoolExecutor = threadPoolExecutor; | ||
} | ||
|
||
public String getApplicationName() { | ||
return applicationName; | ||
} | ||
|
||
public void setApplicationName(String applicationName) { | ||
this.applicationName = applicationName; | ||
} | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) return true; | ||
if (o == null || getClass() != o.getClass()) return false; | ||
ThreadPoolMetric that = (ThreadPoolMetric) o; | ||
return Objects.equals(applicationName, that.applicationName) && | ||
Objects.equals(threadPoolName, that.threadPoolName); | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return Objects.hash(applicationName, threadPoolName); | ||
} | ||
|
||
public Map<String, String> getTags() { | ||
Map<String, String> tags = new HashMap<>(); | ||
tags.put(TAG_IP, getLocalHost()); | ||
tags.put(TAG_PID, ConfigUtils.getPid()+""); | ||
tags.put(TAG_HOSTNAME, getLocalHostName()); | ||
tags.put(TAG_APPLICATION_NAME, applicationName); | ||
|
||
tags.put(TAG_THREAD_NAME, threadPoolName); | ||
return tags; | ||
} | ||
|
||
public double getCorePoolSize() { | ||
return threadPoolExecutor.getCorePoolSize(); | ||
} | ||
|
||
public double getLargestPoolSize() { | ||
return threadPoolExecutor.getLargestPoolSize(); | ||
} | ||
|
||
public double getMaximumPoolSize() { | ||
return threadPoolExecutor.getMaximumPoolSize(); | ||
} | ||
|
||
public double getActiveCount() { | ||
return threadPoolExecutor.getActiveCount(); | ||
} | ||
|
||
public double getPoolSize(){ | ||
return threadPoolExecutor.getPoolSize(); | ||
} | ||
|
||
public double getQueueSize(){ | ||
return threadPoolExecutor.getQueue().size(); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters