未验证 提交 315a6f06 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Merge branch 'master' into fix/graphql/node-nullable

sudo: required sudo: required
services:
- docker
language: java language: java
before_install:
- cd ci-dependencies
- curl -O https://openskywalking.github.io/skywalking-ci-assist/jars/ojdbc14-10.2.0.4.0.jar
- curl -O https://openskywalking.github.io/skywalking-ci-assist/jars/resin-4.0.41.jar
- cd ..
install: install:
- jdk_switcher use oraclejdk8 - jdk_switcher use oraclejdk8
- mvn clean install --quiet jacoco:report coveralls:report - mvn clean install --quiet jacoco:report coveralls:report
after_success:
- bash ./travis/push_image.sh
Apache SkyWalking Apache SkyWalking
Copyright 2015-2017 The Apache Software Foundation Copyright 2015-2018 The Apache Software Foundation
This product includes software developed by The Apache Software This product includes software developed by The Apache Software
Foundation (http://www.apache.org/). Foundation (http://www.apache.org/).
......
...@@ -7,8 +7,10 @@ Apache SkyWalking | [中文](README_ZH.md) ...@@ -7,8 +7,10 @@ Apache SkyWalking | [中文](README_ZH.md)
microservices, cloud native and container-based (Docker, K8s, Mesos) architectures. microservices, cloud native and container-based (Docker, K8s, Mesos) architectures.
Underlying technology is a distributed tracing system. Underlying technology is a distributed tracing system.
[![GitHub stars](https://img.shields.io/github/stars/apache/incubator-skywalking.svg?style=for-the-badge&label=Stars&logo=github)](https://github.com/apache/incubator-skywalking)
[![Twitter Follow](https://img.shields.io/twitter/follow/asfskywalking.svg?style=for-the-badge&label=Follow&logo=twitter)](https://twitter.com/AsfSkyWalking)
[![Build Status](https://travis-ci.org/apache/incubator-skywalking.svg?branch=master)](https://travis-ci.org/apache/incubator-skywalking) [![Build Status](https://travis-ci.org/apache/incubator-skywalking.svg?branch=master)](https://travis-ci.org/apache/incubator-skywalking)
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/AsfSkyWalking)
[![Join the chat at https://gitter.im/sky-walking/Lobby](https://badges.gitter.im/openskywalking/Lobby.svg)](https://gitter.im/openskywalking/Lobby) [![Join the chat at https://gitter.im/sky-walking/Lobby](https://badges.gitter.im/openskywalking/Lobby.svg)](https://gitter.im/openskywalking/Lobby)
[![OpenTracing-1.x Badge](https://img.shields.io/badge/OpenTracing--1.x-enabled-blue.svg)](http://opentracing.io) [![OpenTracing-1.x Badge](https://img.shields.io/badge/OpenTracing--1.x-enabled-blue.svg)](http://opentracing.io)
......
...@@ -6,8 +6,10 @@ Apache SkyWalking | [English](README.md) ...@@ -6,8 +6,10 @@ Apache SkyWalking | [English](README.md)
**SkyWalking**: 针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native和容器化(Docker, K8s, Mesos)架构, **SkyWalking**: 针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native和容器化(Docker, K8s, Mesos)架构,
其核心是个分布式追踪系统。 其核心是个分布式追踪系统。
[![GitHub stars](https://img.shields.io/github/stars/apache/incubator-skywalking.svg?style=for-the-badge&label=Stars&logo=github)](https://github.com/apache/incubator-skywalking)
[![Twitter Follow](https://img.shields.io/twitter/follow/asfskywalking.svg?style=for-the-badge&label=Follow&logo=twitter)](https://twitter.com/AsfSkyWalking)
[![Build Status](https://travis-ci.org/apache/incubator-skywalking.svg?branch=master)](https://travis-ci.org/apache/incubator-skywalking) [![Build Status](https://travis-ci.org/apache/incubator-skywalking.svg?branch=master)](https://travis-ci.org/apache/incubator-skywalking)
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/AsfSkyWalking)
[![Join the chat at https://gitter.im/openskywalking/Lobby](https://badges.gitter.im/openskywalking/Lobby.svg)](https://gitter.im/openskywalking/Lobby) [![Join the chat at https://gitter.im/openskywalking/Lobby](https://badges.gitter.im/openskywalking/Lobby.svg)](https://gitter.im/openskywalking/Lobby)
[![OpenTracing-1.x Badge](https://img.shields.io/badge/OpenTracing--1.x-enabled-blue.svg)](http://opentracing.io) [![OpenTracing-1.x Badge](https://img.shields.io/badge/OpenTracing--1.x-enabled-blue.svg)](http://opentracing.io)
......
...@@ -22,6 +22,7 @@ import org.apache.skywalking.apm.collector.analysis.jvm.define.graph.GraphIdDefi ...@@ -22,6 +22,7 @@ import org.apache.skywalking.apm.collector.analysis.jvm.define.graph.GraphIdDefi
import org.apache.skywalking.apm.collector.analysis.jvm.define.service.IMemoryMetricService; import org.apache.skywalking.apm.collector.analysis.jvm.define.service.IMemoryMetricService;
import org.apache.skywalking.apm.collector.core.graph.Graph; import org.apache.skywalking.apm.collector.core.graph.Graph;
import org.apache.skywalking.apm.collector.core.graph.GraphManager; import org.apache.skywalking.apm.collector.core.graph.GraphManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.Const;
import org.apache.skywalking.apm.collector.core.util.ObjectUtils; import org.apache.skywalking.apm.collector.core.util.ObjectUtils;
import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetric; import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetric;
...@@ -53,7 +54,7 @@ public class MemoryMetricService implements IMemoryMetricService { ...@@ -53,7 +54,7 @@ public class MemoryMetricService implements IMemoryMetricService {
memoryMetric.setId(id); memoryMetric.setId(id);
memoryMetric.setMetricId(metricId); memoryMetric.setMetricId(metricId);
memoryMetric.setInstanceId(instanceId); memoryMetric.setInstanceId(instanceId);
memoryMetric.setIsHeap(isHeap); memoryMetric.setIsHeap(BooleanUtils.booleanToValue(isHeap));
memoryMetric.setInit(init); memoryMetric.setInit(init);
memoryMetric.setMax(max); memoryMetric.setMax(max);
memoryMetric.setUsed(used); memoryMetric.setUsed(used);
......
...@@ -33,6 +33,7 @@ import org.apache.skywalking.apm.collector.cache.service.ServiceNameCacheService ...@@ -33,6 +33,7 @@ import org.apache.skywalking.apm.collector.cache.service.ServiceNameCacheService
import org.apache.skywalking.apm.collector.core.graph.Graph; import org.apache.skywalking.apm.collector.core.graph.Graph;
import org.apache.skywalking.apm.collector.core.graph.GraphManager; import org.apache.skywalking.apm.collector.core.graph.GraphManager;
import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils; import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
import org.apache.skywalking.apm.collector.storage.table.segment.SegmentCost; import org.apache.skywalking.apm.collector.storage.table.segment.SegmentCost;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -98,7 +99,7 @@ public class SegmentCostSpanListener implements EntrySpanListener, ExitSpanListe ...@@ -98,7 +99,7 @@ public class SegmentCostSpanListener implements EntrySpanListener, ExitSpanListe
Graph<SegmentCost> graph = GraphManager.INSTANCE.findGraph(MetricGraphIdDefine.SEGMENT_COST_GRAPH_ID, SegmentCost.class); Graph<SegmentCost> graph = GraphManager.INSTANCE.findGraph(MetricGraphIdDefine.SEGMENT_COST_GRAPH_ID, SegmentCost.class);
logger.debug("segment cost listener build"); logger.debug("segment cost listener build");
for (SegmentCost segmentCost : segmentCosts) { for (SegmentCost segmentCost : segmentCosts) {
segmentCost.setIsError(isError); segmentCost.setIsError(BooleanUtils.booleanToValue(isError));
segmentCost.setTimeBucket(timeBucket); segmentCost.setTimeBucket(timeBucket);
graph.start(segmentCost); graph.start(segmentCost);
} }
......
...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.analysis.worker.model.base.WorkerExce ...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.analysis.worker.model.base.WorkerExce
import org.apache.skywalking.apm.collector.cache.CacheModule; import org.apache.skywalking.apm.collector.cache.CacheModule;
import org.apache.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.apache.skywalking.apm.collector.cache.service.ApplicationCacheService;
import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.Const;
import org.apache.skywalking.apm.collector.storage.StorageModule; import org.apache.skywalking.apm.collector.storage.StorageModule;
import org.apache.skywalking.apm.collector.storage.dao.register.IApplicationRegisterDAO; import org.apache.skywalking.apm.collector.storage.dao.register.IApplicationRegisterDAO;
...@@ -65,7 +66,7 @@ public class ApplicationRegisterSerialWorker extends AbstractLocalAsyncWorker<Ap ...@@ -65,7 +66,7 @@ public class ApplicationRegisterSerialWorker extends AbstractLocalAsyncWorker<Ap
userApplication.setApplicationCode(Const.USER_CODE); userApplication.setApplicationCode(Const.USER_CODE);
userApplication.setApplicationId(Const.NONE_APPLICATION_ID); userApplication.setApplicationId(Const.NONE_APPLICATION_ID);
userApplication.setAddressId(Const.NONE); userApplication.setAddressId(Const.NONE);
userApplication.setIsAddress(false); userApplication.setIsAddress(BooleanUtils.FALSE);
applicationRegisterDAO.save(userApplication); applicationRegisterDAO.save(userApplication);
newApplication = new Application(); newApplication = new Application();
......
...@@ -25,18 +25,20 @@ public enum IdAutoIncrement { ...@@ -25,18 +25,20 @@ public enum IdAutoIncrement {
INSTANCE; INSTANCE;
public int increment(int min, int max) { public int increment(int min, int max) {
int instanceId; int id;
if (min == max) { if (min == max) {
instanceId = -1; if (min == 0) {
id = -1;
} else {
id = 1;
}
} else if (min + max == 0) { } else if (min + max == 0) {
instanceId = max + 1; id = max + 1;
} else if (min + max > 0) { } else if (min + max > 0) {
instanceId = min - 1; id = min - 1;
} else if (max < 0) {
instanceId = 1;
} else { } else {
instanceId = max + 1; id = max + 1;
} }
return instanceId; return id;
} }
} }
...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.analysis.worker.model.base.WorkerExce ...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.analysis.worker.model.base.WorkerExce
import org.apache.skywalking.apm.collector.cache.CacheModule; import org.apache.skywalking.apm.collector.cache.CacheModule;
import org.apache.skywalking.apm.collector.cache.service.InstanceCacheService; import org.apache.skywalking.apm.collector.cache.service.InstanceCacheService;
import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.Const;
import org.apache.skywalking.apm.collector.storage.StorageModule; import org.apache.skywalking.apm.collector.storage.StorageModule;
import org.apache.skywalking.apm.collector.storage.dao.register.IInstanceRegisterDAO; import org.apache.skywalking.apm.collector.storage.dao.register.IInstanceRegisterDAO;
...@@ -70,7 +71,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker<Insta ...@@ -70,7 +71,7 @@ public class InstanceRegisterSerialWorker extends AbstractLocalAsyncWorker<Insta
userInstance.setOsInfo(Const.EMPTY_STRING); userInstance.setOsInfo(Const.EMPTY_STRING);
userInstance.setRegisterTime(System.currentTimeMillis()); userInstance.setRegisterTime(System.currentTimeMillis());
userInstance.setAddressId(Const.NONE); userInstance.setAddressId(Const.NONE);
userInstance.setIsAddress(false); userInstance.setIsAddress(BooleanUtils.FALSE);
instanceRegisterDAO.save(userInstance); instanceRegisterDAO.save(userInstance);
newInstance = new Instance(); newInstance = new Instance();
......
...@@ -26,19 +26,16 @@ import org.apache.skywalking.apm.collector.cache.service.NetworkAddressCacheServ ...@@ -26,19 +26,16 @@ import org.apache.skywalking.apm.collector.cache.service.NetworkAddressCacheServ
import org.apache.skywalking.apm.collector.core.graph.Graph; import org.apache.skywalking.apm.collector.core.graph.Graph;
import org.apache.skywalking.apm.collector.core.graph.GraphManager; import org.apache.skywalking.apm.collector.core.graph.GraphManager;
import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.Const;
import org.apache.skywalking.apm.collector.core.util.ObjectUtils; import org.apache.skywalking.apm.collector.core.util.ObjectUtils;
import org.apache.skywalking.apm.collector.storage.table.register.Application; import org.apache.skywalking.apm.collector.storage.table.register.Application;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
*/ */
public class ApplicationIDService implements IApplicationIDService { public class ApplicationIDService implements IApplicationIDService {
private final Logger logger = LoggerFactory.getLogger(ApplicationIDService.class);
private final ModuleManager moduleManager; private final ModuleManager moduleManager;
private ApplicationCacheService applicationCacheService; private ApplicationCacheService applicationCacheService;
private NetworkAddressCacheService networkAddressCacheService; private NetworkAddressCacheService networkAddressCacheService;
...@@ -78,7 +75,7 @@ public class ApplicationIDService implements IApplicationIDService { ...@@ -78,7 +75,7 @@ public class ApplicationIDService implements IApplicationIDService {
application.setApplicationCode(applicationCode); application.setApplicationCode(applicationCode);
application.setApplicationId(0); application.setApplicationId(0);
application.setAddressId(Const.NONE); application.setAddressId(Const.NONE);
application.setIsAddress(false); application.setIsAddress(BooleanUtils.FALSE);
getApplicationRegisterGraph().start(application); getApplicationRegisterGraph().start(application);
} }
...@@ -94,7 +91,7 @@ public class ApplicationIDService implements IApplicationIDService { ...@@ -94,7 +91,7 @@ public class ApplicationIDService implements IApplicationIDService {
application.setApplicationCode(networkAddress); application.setApplicationCode(networkAddress);
application.setApplicationId(0); application.setApplicationId(0);
application.setAddressId(addressId); application.setAddressId(addressId);
application.setIsAddress(true); application.setIsAddress(BooleanUtils.TRUE);
getApplicationRegisterGraph().start(application); getApplicationRegisterGraph().start(application);
} }
......
...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.cache.service.InstanceCacheService; ...@@ -25,6 +25,7 @@ import org.apache.skywalking.apm.collector.cache.service.InstanceCacheService;
import org.apache.skywalking.apm.collector.core.graph.Graph; import org.apache.skywalking.apm.collector.core.graph.Graph;
import org.apache.skywalking.apm.collector.core.graph.GraphManager; import org.apache.skywalking.apm.collector.core.graph.GraphManager;
import org.apache.skywalking.apm.collector.core.module.ModuleManager; import org.apache.skywalking.apm.collector.core.module.ModuleManager;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
import org.apache.skywalking.apm.collector.core.util.Const; import org.apache.skywalking.apm.collector.core.util.Const;
import org.apache.skywalking.apm.collector.core.util.ObjectUtils; import org.apache.skywalking.apm.collector.core.util.ObjectUtils;
import org.apache.skywalking.apm.collector.storage.StorageModule; import org.apache.skywalking.apm.collector.storage.StorageModule;
...@@ -83,7 +84,7 @@ public class InstanceIDService implements IInstanceIDService { ...@@ -83,7 +84,7 @@ public class InstanceIDService implements IInstanceIDService {
instance.setHeartBeatTime(registerTime); instance.setHeartBeatTime(registerTime);
instance.setInstanceId(0); instance.setInstanceId(0);
instance.setOsInfo(osInfo); instance.setOsInfo(osInfo);
instance.setIsAddress(false); instance.setIsAddress(BooleanUtils.FALSE);
instance.setAddressId(Const.NONE); instance.setAddressId(Const.NONE);
getInstanceRegisterGraph().start(instance); getInstanceRegisterGraph().start(instance);
...@@ -104,7 +105,7 @@ public class InstanceIDService implements IInstanceIDService { ...@@ -104,7 +105,7 @@ public class InstanceIDService implements IInstanceIDService {
instance.setHeartBeatTime(registerTime); instance.setHeartBeatTime(registerTime);
instance.setInstanceId(0); instance.setInstanceId(0);
instance.setOsInfo(Const.EMPTY_STRING); instance.setOsInfo(Const.EMPTY_STRING);
instance.setIsAddress(true); instance.setIsAddress(BooleanUtils.TRUE);
instance.setAddressId(addressId); instance.setAddressId(addressId);
getInstanceRegisterGraph().start(instance); getInstanceRegisterGraph().start(instance);
......
/*
* 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.skywalking.apm.collector.analysis.register.provider.register;
import org.junit.Assert;
import org.junit.Test;
/**
* @author peng-yongsheng
*/
public class IdAutoIncrementTestCase {
@Test
public void testIncrement() {
int id = IdAutoIncrement.INSTANCE.increment(0, 0);
Assert.assertEquals(-1, id);
id = IdAutoIncrement.INSTANCE.increment(-1, -1);
Assert.assertEquals(1, id);
id = IdAutoIncrement.INSTANCE.increment(-1, 1);
Assert.assertEquals(2, id);
id = IdAutoIncrement.INSTANCE.increment(-1, 2);
Assert.assertEquals(-2, id);
id = IdAutoIncrement.INSTANCE.increment(-2, 2);
Assert.assertEquals(3, id);
}
}
...@@ -42,10 +42,10 @@ ui: ...@@ -42,10 +42,10 @@ ui:
# index_shards_number: 2 # index_shards_number: 2
# index_replicas_number: 0 # index_replicas_number: 0
# ttl: 7 # ttl: 7
#storage: storage:
# h2: h2:
# url: jdbc:h2:tcp://localhost/~/test url: jdbc:h2:tcp://localhost/~/test
# user_name: sa user_name: sa
configuration: configuration:
default: default:
application_apdex_threshold: 2000 application_apdex_threshold: 2000
......
...@@ -25,7 +25,6 @@ import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation; ...@@ -25,7 +25,6 @@ import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation;
import org.apache.skywalking.apm.collector.core.data.operator.MaxOperation; import org.apache.skywalking.apm.collector.core.data.operator.MaxOperation;
import org.apache.skywalking.apm.collector.core.data.operator.MinOperation; import org.apache.skywalking.apm.collector.core.data.operator.MinOperation;
import org.apache.skywalking.apm.collector.core.data.operator.NonOperation; import org.apache.skywalking.apm.collector.core.data.operator.NonOperation;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -132,11 +131,11 @@ public class MemoryMetric extends StreamData { ...@@ -132,11 +131,11 @@ public class MemoryMetric extends StreamData {
setDataInteger(0, instanceId); setDataInteger(0, instanceId);
} }
public Boolean getIsHeap() { public Integer getIsHeap() {
return BooleanUtils.valueToBoolean(getDataInteger(1)); return getDataInteger(1);
} }
public void setIsHeap(Boolean isHeap) { public void setIsHeap(Integer isHeap) {
setDataInteger(1, BooleanUtils.booleanToValue(isHeap)); setDataInteger(1, isHeap);
} }
} }
...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column; ...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column;
import org.apache.skywalking.apm.collector.core.data.StreamData; import org.apache.skywalking.apm.collector.core.data.StreamData;
import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation; import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation;
import org.apache.skywalking.apm.collector.core.data.operator.NonOperation; import org.apache.skywalking.apm.collector.core.data.operator.NonOperation;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -90,11 +89,11 @@ public class Application extends StreamData { ...@@ -90,11 +89,11 @@ public class Application extends StreamData {
setDataInteger(1, addressId); setDataInteger(1, addressId);
} }
public boolean getIsAddress() { public int getIsAddress() {
return BooleanUtils.valueToBoolean(getDataInteger(2)); return getDataInteger(2);
} }
public void setIsAddress(boolean isAddress) { public void setIsAddress(int isAddress) {
setDataInteger(2, BooleanUtils.booleanToValue(isAddress)); setDataInteger(2, isAddress);
} }
} }
...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column; ...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column;
import org.apache.skywalking.apm.collector.core.data.StreamData; import org.apache.skywalking.apm.collector.core.data.StreamData;
import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation; import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation;
import org.apache.skywalking.apm.collector.core.data.operator.NonOperation; import org.apache.skywalking.apm.collector.core.data.operator.NonOperation;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -127,11 +126,11 @@ public class Instance extends StreamData { ...@@ -127,11 +126,11 @@ public class Instance extends StreamData {
setDataInteger(2, addressId); setDataInteger(2, addressId);
} }
public boolean getIsAddress() { public int getIsAddress() {
return BooleanUtils.valueToBoolean(getDataInteger(3)); return getDataInteger(3);
} }
public void setIsAddress(boolean isAddress) { public void setIsAddress(int isAddress) {
setDataInteger(3, BooleanUtils.booleanToValue(isAddress)); setDataInteger(3, isAddress);
} }
} }
...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column; ...@@ -22,7 +22,6 @@ import org.apache.skywalking.apm.collector.core.data.Column;
import org.apache.skywalking.apm.collector.core.data.StreamData; import org.apache.skywalking.apm.collector.core.data.StreamData;
import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation; import org.apache.skywalking.apm.collector.core.data.operator.CoverOperation;
import org.apache.skywalking.apm.collector.core.data.operator.NonOperation; import org.apache.skywalking.apm.collector.core.data.operator.NonOperation;
import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
...@@ -127,11 +126,11 @@ public class SegmentCost extends StreamData { ...@@ -127,11 +126,11 @@ public class SegmentCost extends StreamData {
setDataInteger(0, applicationId); setDataInteger(0, applicationId);
} }
public Boolean getIsError() { public Integer getIsError() {
return BooleanUtils.valueToBoolean(getDataInteger(1)); return getDataInteger(1);
} }
public void setIsError(Boolean isError) { public void setIsError(Integer isError) {
setDataInteger(0, BooleanUtils.booleanToValue(isError)); setDataInteger(1, isError);
} }
} }
...@@ -30,16 +30,12 @@ import org.elasticsearch.action.search.SearchType; ...@@ -30,16 +30,12 @@ import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* @author peng-yongsheng * @author peng-yongsheng
*/ */
public class InstanceEsCacheDAO extends EsDAO implements IInstanceCacheDAO { public class InstanceEsCacheDAO extends EsDAO implements IInstanceCacheDAO {
private final Logger logger = LoggerFactory.getLogger(InstanceEsCacheDAO.class);
public InstanceEsCacheDAO(ElasticSearchClient client) { public InstanceEsCacheDAO(ElasticSearchClient client) {
super(client); super(client);
} }
......
...@@ -48,7 +48,7 @@ public class NetworkAddressEsCacheDAO extends EsDAO implements INetworkAddressCa ...@@ -48,7 +48,7 @@ public class NetworkAddressEsCacheDAO extends EsDAO implements INetworkAddressCa
ElasticSearchClient client = getClient(); ElasticSearchClient client = getClient();
SearchRequestBuilder searchRequestBuilder = client.prepareSearch(NetworkAddressTable.TABLE); SearchRequestBuilder searchRequestBuilder = client.prepareSearch(NetworkAddressTable.TABLE);
searchRequestBuilder.setTypes("type"); searchRequestBuilder.setTypes(NetworkAddressTable.TABLE_TYPE);
searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH); searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, networkAddress)); searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, networkAddress));
searchRequestBuilder.setSize(1); searchRequestBuilder.setSize(1);
......
...@@ -44,7 +44,7 @@ public abstract class AbstractMemoryMetricEsPersistenceDAO extends AbstractPersi ...@@ -44,7 +44,7 @@ public abstract class AbstractMemoryMetricEsPersistenceDAO extends AbstractPersi
memoryMetric.setMetricId((String)source.get(MemoryMetricTable.COLUMN_METRIC_ID)); memoryMetric.setMetricId((String)source.get(MemoryMetricTable.COLUMN_METRIC_ID));
memoryMetric.setInstanceId(((Number)source.get(MemoryMetricTable.COLUMN_INSTANCE_ID)).intValue()); memoryMetric.setInstanceId(((Number)source.get(MemoryMetricTable.COLUMN_INSTANCE_ID)).intValue());
memoryMetric.setIsHeap((Boolean)source.get(MemoryMetricTable.COLUMN_IS_HEAP)); memoryMetric.setIsHeap(((Number)source.get(MemoryMetricTable.COLUMN_IS_HEAP)).intValue());
memoryMetric.setInit(((Number)source.get(MemoryMetricTable.COLUMN_INIT)).longValue()); memoryMetric.setInit(((Number)source.get(MemoryMetricTable.COLUMN_INIT)).longValue());
memoryMetric.setMax(((Number)source.get(MemoryMetricTable.COLUMN_MAX)).longValue()); memoryMetric.setMax(((Number)source.get(MemoryMetricTable.COLUMN_MAX)).longValue());
......
...@@ -28,7 +28,7 @@ import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetric; ...@@ -28,7 +28,7 @@ import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetric;
import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetricTable; import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryMetricTable;
/** /**
* @author peng-yongsheng, clevertension * @author peng-yongsheng
*/ */
public abstract class AbstractMemoryMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<MemoryMetric> { public abstract class AbstractMemoryMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<MemoryMetric> {
...@@ -42,7 +42,7 @@ public abstract class AbstractMemoryMetricH2PersistenceDAO extends AbstractPersi ...@@ -42,7 +42,7 @@ public abstract class AbstractMemoryMetricH2PersistenceDAO extends AbstractPersi
memoryMetric.setMetricId(resultSet.getString(MemoryMetricTable.COLUMN_METRIC_ID)); memoryMetric.setMetricId(resultSet.getString(MemoryMetricTable.COLUMN_METRIC_ID));
memoryMetric.setInstanceId(resultSet.getInt(MemoryMetricTable.COLUMN_INSTANCE_ID)); memoryMetric.setInstanceId(resultSet.getInt(MemoryMetricTable.COLUMN_INSTANCE_ID));
memoryMetric.setIsHeap(resultSet.getBoolean(MemoryMetricTable.COLUMN_IS_HEAP)); memoryMetric.setIsHeap(resultSet.getInt(MemoryMetricTable.COLUMN_IS_HEAP));
memoryMetric.setInit(resultSet.getLong(MemoryMetricTable.COLUMN_INIT)); memoryMetric.setInit(resultSet.getLong(MemoryMetricTable.COLUMN_INIT));
memoryMetric.setMax(resultSet.getLong(MemoryMetricTable.COLUMN_MAX)); memoryMetric.setMax(resultSet.getLong(MemoryMetricTable.COLUMN_MAX));
......
...@@ -18,25 +18,26 @@ ...@@ -18,25 +18,26 @@
package org.apache.skywalking.apm.plugin.spring.mvc.commons; package org.apache.skywalking.apm.plugin.spring.mvc.commons;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.context.request.NativeWebRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
public class EnhanceRequireObjectCache { public class EnhanceRequireObjectCache {
private PathMappingCache pathMappingCache; private PathMappingCache pathMappingCache;
private NativeWebRequest nativeWebRequest; private ThreadLocal<NativeWebRequest> nativeWebRequest = new ThreadLocal<NativeWebRequest>();
private HttpServletResponse httpResponse; private ThreadLocal<HttpServletResponse> httpResponse = new ThreadLocal<HttpServletResponse>();
public void setPathMappingCache(PathMappingCache pathMappingCache) { public void setPathMappingCache(PathMappingCache pathMappingCache) {
this.pathMappingCache = pathMappingCache; this.pathMappingCache = pathMappingCache;
} }
public HttpServletResponse getHttpServletResponse() { public HttpServletResponse getHttpServletResponse() {
return httpResponse == null ? (HttpServletResponse)nativeWebRequest.getNativeResponse() : httpResponse; return httpResponse.get() == null ? (HttpServletResponse) nativeWebRequest.get().getNativeResponse() : httpResponse.get();
} }
public void setNativeWebRequest(NativeWebRequest nativeWebRequest) { public void setNativeWebRequest(NativeWebRequest nativeWebRequest) {
this.nativeWebRequest = nativeWebRequest; this.nativeWebRequest.set(nativeWebRequest);
} }
public String findPathMapping(Method method) { public String findPathMapping(Method method) {
...@@ -52,10 +53,12 @@ public class EnhanceRequireObjectCache { ...@@ -52,10 +53,12 @@ public class EnhanceRequireObjectCache {
} }
public void setHttpResponse(HttpServletResponse httpResponse) { public void setHttpResponse(HttpServletResponse httpResponse) {
this.httpResponse = httpResponse; this.httpResponse.set(httpResponse);
} }
public HttpServletResponse getHttpResponse() { public void clearRequestAndResponse() {
return httpResponse; setNativeWebRequest(null);
setHttpResponse(null);
} }
} }
...@@ -19,27 +19,28 @@ ...@@ -19,27 +19,28 @@
package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor; package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor;
import java.lang.reflect.Method; import org.apache.skywalking.apm.agent.core.context.CarrierItem;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.skywalking.apm.agent.core.context.ContextCarrier; import org.apache.skywalking.apm.agent.core.context.ContextCarrier;
import org.apache.skywalking.apm.agent.core.context.ContextManager;
import org.apache.skywalking.apm.agent.core.context.tag.Tags; import org.apache.skywalking.apm.agent.core.context.tag.Tags;
import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan; import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer; import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
import org.apache.skywalking.apm.agent.core.context.CarrierItem;
import org.apache.skywalking.apm.agent.core.context.ContextManager;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
/** /**
* the abstract method inteceptor * the abstract method inteceptor
*/ */
public abstract class AbstractMethodInteceptor implements InstanceMethodsAroundInterceptor { public abstract class AbstractMethodInterceptor implements InstanceMethodsAroundInterceptor {
public abstract String getRequestURL(Method method); public abstract String getRequestURL(Method method);
@Override @Override
...@@ -72,7 +73,8 @@ public abstract class AbstractMethodInteceptor implements InstanceMethodsAroundI ...@@ -72,7 +73,8 @@ public abstract class AbstractMethodInteceptor implements InstanceMethodsAroundI
@Override @Override
public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
Object ret) throws Throwable { Object ret) throws Throwable {
HttpServletResponse response = ((EnhanceRequireObjectCache)objInst.getSkyWalkingDynamicField()).getHttpServletResponse(); try {
HttpServletResponse response = ((EnhanceRequireObjectCache) objInst.getSkyWalkingDynamicField()).getHttpServletResponse();
AbstractSpan span = ContextManager.activeSpan(); AbstractSpan span = ContextManager.activeSpan();
if (response.getStatus() >= 400) { if (response.getStatus() >= 400) {
...@@ -81,6 +83,9 @@ public abstract class AbstractMethodInteceptor implements InstanceMethodsAroundI ...@@ -81,6 +83,9 @@ public abstract class AbstractMethodInteceptor implements InstanceMethodsAroundI
} }
ContextManager.stopSpan(); ContextManager.stopSpan();
return ret; return ret;
} finally {
((EnhanceRequireObjectCache)objInst.getSkyWalkingDynamicField()).clearRequestAndResponse();
}
} }
@Override @Override
......
...@@ -18,13 +18,14 @@ ...@@ -18,13 +18,14 @@
package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor; package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletResponse;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult; import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache; import org.apache.skywalking.apm.plugin.spring.mvc.commons.EnhanceRequireObjectCache;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
public class InvokeHandlerMethodInterceptor implements InstanceMethodsAroundInterceptor { public class InvokeHandlerMethodInterceptor implements InstanceMethodsAroundInterceptor {
@Override @Override
public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
...@@ -42,6 +43,5 @@ public class InvokeHandlerMethodInterceptor implements InstanceMethodsAroundInte ...@@ -42,6 +43,5 @@ public class InvokeHandlerMethodInterceptor implements InstanceMethodsAroundInte
@Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments,
Class<?>[] argumentsTypes, Throwable t) { Class<?>[] argumentsTypes, Throwable t) {
} }
} }
...@@ -19,16 +19,17 @@ ...@@ -19,16 +19,17 @@
package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor; package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor;
import java.lang.reflect.Method;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.lang.reflect.Method;
/** /**
* The <code>RequestMappingMethodInterceptor</code> only use the first mapping value. * The <code>RequestMappingMethodInterceptor</code> only use the first mapping value.
* it will inteceptor with <code>@RequestMapping</code> * it will inteceptor with <code>@RequestMapping</code>
* *
* @author clevertension * @author clevertension
*/ */
public class RequestMappingMethodInterceptor extends AbstractMethodInteceptor { public class RequestMappingMethodInterceptor extends AbstractMethodInterceptor {
@Override @Override
public String getRequestURL(Method method) { public String getRequestURL(Method method) {
String requestURL = ""; String requestURL = "";
......
...@@ -19,12 +19,9 @@ ...@@ -19,12 +19,9 @@
package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor; package org.apache.skywalking.apm.plugin.spring.mvc.commons.interceptor;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
/** /**
* The <code>RestMappingMethodInterceptor</code> only use the first mapping value. * The <code>RestMappingMethodInterceptor</code> only use the first mapping value.
...@@ -34,7 +31,7 @@ import org.springframework.web.bind.annotation.PutMapping; ...@@ -34,7 +31,7 @@ import org.springframework.web.bind.annotation.PutMapping;
* *
* @author clevertension * @author clevertension
*/ */
public class RestMappingMethodInterceptor extends AbstractMethodInteceptor { public class RestMappingMethodInterceptor extends AbstractMethodInterceptor {
@Override @Override
public String getRequestURL(Method method) { public String getRequestURL(Method method) {
String requestURL = ""; String requestURL = "";
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* [项目简介](/README_ZH.md) * [项目简介](/README_ZH.md)
* [快速入门](cn/Quick-start-CN.md) * [快速入门](cn/Quick-start-CN.md)
* [部署Collector镜像](cn/Deploy-docker-image.CN.md) * [部署Collector镜像](cn/Deploy-docker-image-CN.md)
* [中间件,框架与类库支持列表](Supported-list.md) * [中间件,框架与类库支持列表](Supported-list.md)
* [如何关闭特定插件](cn/How-to-disable-plugin-CN.md) * [如何关闭特定插件](cn/How-to-disable-plugin-CN.md)
* APM相关介绍资料 * APM相关介绍资料
......
...@@ -16,3 +16,11 @@ ...@@ -16,3 +16,11 @@
- **apm-protocol/apm-network/target/generated-sources/protobuf**目录下的`grpc-java``java`目录 - **apm-protocol/apm-network/target/generated-sources/protobuf**目录下的`grpc-java``java`目录
- **apm-collector/apm-collector-remote/apm-remote-grpc-provider/target/protobuf**目录下的`grpc-java``java`目录 - **apm-collector/apm-collector-remote/apm-remote-grpc-provider/target/protobuf**目录下的`grpc-java``java`目录
## 编译Resin-3, Resin-4 和 Oracle JDBC 驱动插件
为了遵守Apache关于协议(License)的相关要求,不符合Apache相关要求的类库所对应的Plugin不会自动编译。如需编译对应的插件,
需要手动下载驱动或类库,并将文件拷贝到`ci-dependencies/`中,运行`mvn package`进行编译。
`ci-dependencies/`下对应的类库文件名为:
* resin-3.0.9.jar
* resin-4.0.41.jar
* ojdbc14-10.2.0.4.0.jar
\ No newline at end of file
...@@ -323,43 +323,13 @@ ...@@ -323,43 +323,13 @@
</profile> </profile>
<profile> <profile>
<!-- resin is not Apache license compatible, so it must be manually downloaded first --> <!-- resin is not Apache license compatible, so it must be manually downloaded first -->
<!-- Use resin 3.x jar file as a beacon only -->
<id>install-resin-3</id> <id>install-resin-3</id>
<activation> <activation>
<file> <file>
<exists>${basedir}/ci-dependencies/resin-3.0.9.jar</exists> <exists>${basedir}/ci-dependencies/resin-3.0.9.jar</exists>
</file> </file>
</activation> </activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>install-resin-3</id>
<inherited>false</inherited>
<phase>process-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>mvn</executable>
<arguments>
<argument>install:install-file</argument>
<argument>-Dfile=resin-3.0.9.jar</argument>
<argument>-DgroupId=com.caucho</argument>
<argument>-DartifactId=resin</argument>
<argument>-Dversion=3.0.9</argument>
<argument>-Dpackaging=jar</argument>
</arguments>
<workingDirectory>${project.basedir}/ci-dependencies</workingDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile> </profile>
<profile> <profile>
<!-- resin is not Apache license compatible, so it must be manually downloaded first --> <!-- resin is not Apache license compatible, so it must be manually downloaded first -->
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册