Skip to content

Commit

Permalink
Fix timeBucket not taking effect in EqualsAndHashCode annotation. (a…
Browse files Browse the repository at this point in the history
  • Loading branch information
zifeihan authored Jan 8, 2021
1 parent e3fbb3f commit 5fd06a7
Show file tree
Hide file tree
Showing 10 changed files with 229 additions and 15 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Release Notes.
* Fix bug that istio version metric type on UI template mismatches the otel rule.
* Improve ReadWriteSafeCache concurrency read-write performance
* Fix bug that if use JSON as InfluxDB.ResponseFormat then NumberFormatException maybe occur.
* Fix `timeBucket` not taking effect in EqualsAndHashCode annotation of some relationship metrics.

#### UI
* Fix un-removed tags in trace query.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,8 @@
@Stream(name = EndpointRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.ENDPOINT_RELATION,
builder = EndpointRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
@EqualsAndHashCode(of = {
"entityId",
"timeBucket"
})
"entityId"
}, callSuper = true)
public class EndpointRelationServerSideMetrics extends Metrics {

public static final String INDEX_NAME = "endpoint_relation_server_side";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,8 @@
@Stream(name = ServiceInstanceRelationClientSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.SERVICE_INSTANCE_RELATION,
builder = ServiceInstanceRelationClientSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
@EqualsAndHashCode(of = {
"entityId",
"timeBucket"
})
"entityId"
}, callSuper = true)
public class ServiceInstanceRelationClientSideMetrics extends Metrics {

public static final String INDEX_NAME = "service_instance_relation_client_side";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,8 @@
@Stream(name = ServiceInstanceRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.SERVICE_INSTANCE_RELATION,
builder = ServiceInstanceRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
@EqualsAndHashCode(of = {
"entityId",
"timeBucket"
})
"entityId"
}, callSuper = true)
public class ServiceInstanceRelationServerSideMetrics extends Metrics {

public static final String INDEX_NAME = "service_instance_relation_server_side";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,8 @@
@Stream(name = ServiceRelationClientSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.SERVICE_RELATION,
builder = ServiceRelationClientSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
@EqualsAndHashCode(of = {
"entityId",
"timeBucket"
})
"entityId"
}, callSuper = true)
public class ServiceRelationClientSideMetrics extends Metrics {

public static final String INDEX_NAME = "service_relation_client_side";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,8 @@
@Stream(name = ServiceRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.SERVICE_RELATION,
builder = ServiceRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
@EqualsAndHashCode(of = {
"entityId",
"timeBucket"
})
"entityId"
}, callSuper = true)
public class ServiceRelationServerSideMetrics extends Metrics {

public static final String INDEX_NAME = "service_relation_server_side";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package org.apache.skywalking.oap.server.core.analysis.metrics;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
Expand All @@ -29,6 +30,9 @@
* Metrics represents the statistic data, which analysis by OAL script or hard code. It has the lifecycle controlled by
* TTL(time to live).
*/
@EqualsAndHashCode(of = {
"timeBucket"
})
public abstract class Metrics extends StreamData implements StorageData {

public static final String TIME_BUCKET = "time_bucket";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* 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.oap.server.core.analysis.manual.relation.endpoint;

import org.junit.Assert;
import org.junit.Test;

public class EndpointCallRelationTest {
@Test
public void testEndpointRelationServerSideMetricsEquals() {
EndpointRelationServerSideMetrics thisObject = new EndpointRelationServerSideMetrics();
thisObject.setEntityId(
"VXNlcg==.0-VXNlcg==-em1iaXotcHJvbW90aW9uMi1hZG1pbkAxMjUyNw==.1-L0Bpbi9hcGkvaGVhbHRo");
thisObject.setTimeBucket(202101071505L);

EndpointRelationServerSideMetrics otherObject = new EndpointRelationServerSideMetrics();
otherObject.setEntityId(
"VXNlcg==.0-VXNlcg==-em1iaXotcHJvbW90aW9uMi1hZG1pbkAxMjUyNw==.1-L0Bpbi9hcGkvaGVhbHRo");
otherObject.setTimeBucket(202101071505L);

Assert.assertTrue(thisObject.equals(otherObject));
}

@Test
public void testEndpointRelationServerSideMetricsNotEquals() {
EndpointRelationServerSideMetrics thisObject = new EndpointRelationServerSideMetrics();
thisObject.setEntityId(
"VXNlcg==.0-VXNlcg==-em1iaXotcHJvbW90aW9uMi1hZG1pbkAxMjUyNw==.1-L0Bpbi9hcGkvaGVhbHRo");
thisObject.setTimeBucket(202101071505L);

EndpointRelationServerSideMetrics otherObject = new EndpointRelationServerSideMetrics();
otherObject.setEntityId(
"VXNlcg==.0-VXNlcg==-em1iaXotcHJvbW90aW9uMi1hZG1pbkAxMjUyNw==.1-L0Bpbi9hcGkvaGVhbHRo");
otherObject.setTimeBucket(202101071506L);

Assert.assertFalse(thisObject.equals(otherObject));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
/*
* 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.oap.server.core.analysis.manual.relation.instance;

import org.junit.Assert;
import org.junit.Test;

public class ServiceInstanceRelationTest {
@Test
public void testServiceInstanceRelationClientSideMetricsEquals() {
ServiceInstanceRelationClientSideMetrics thisObject = new ServiceInstanceRelationClientSideMetrics();
thisObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
thisObject.setTimeBucket(202101071505L);

ServiceInstanceRelationClientSideMetrics otherObject = new ServiceInstanceRelationClientSideMetrics();
otherObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
otherObject.setTimeBucket(202101071505L);

Assert.assertTrue(thisObject.equals(otherObject));
}

@Test
public void testServiceInstanceRelationClientSideMetricsNotEquals() {
ServiceInstanceRelationClientSideMetrics thisObject = new ServiceInstanceRelationClientSideMetrics();
thisObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
thisObject.setTimeBucket(202101071505L);

ServiceInstanceRelationClientSideMetrics otherObject = new ServiceInstanceRelationClientSideMetrics();
otherObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
otherObject.setTimeBucket(202101071506L);

Assert.assertFalse(thisObject.equals(otherObject));
}

@Test
public void testServiceInstanceRelationServerSideMetricsEquals() {
ServiceInstanceRelationServerSideMetrics thisObject = new ServiceInstanceRelationServerSideMetrics();
thisObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
thisObject.setTimeBucket(202101071505L);

ServiceInstanceRelationServerSideMetrics otherObject = new ServiceInstanceRelationServerSideMetrics();
otherObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
otherObject.setTimeBucket(202101071505L);

Assert.assertTrue(thisObject.equals(otherObject));
}

@Test
public void testServiceInstanceRelationServerSideMetricsNotEquals() {
ServiceInstanceRelationServerSideMetrics thisObject = new ServiceInstanceRelationServerSideMetrics();
thisObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
thisObject.setTimeBucket(202101071505L);

ServiceInstanceRelationServerSideMetrics otherObject = new ServiceInstanceRelationServerSideMetrics();
otherObject.setEntityId(
"em1jLWJlYWNvbi1taWRkbGV3YXJlQDExMTIz.1_MTAuMTExLjIzMi4yMDc=-MTkyLjE2OC40Ni4xNDM6NDY2MDY=.0_MTkyLjE2OC40Ni4xNDM6NDY2MDY=");
otherObject.setTimeBucket(202101071506L);

Assert.assertFalse(thisObject.equals(otherObject));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/*
* 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.oap.server.core.analysis.manual.relation.service;

import org.junit.Assert;
import org.junit.Test;

public class ServiceRelationTest {
@Test
public void testServiceRelationClientSideMetricsEquals() {
ServiceRelationClientSideMetrics thisObject = new ServiceRelationClientSideMetrics();
thisObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
thisObject.setTimeBucket(202101071505L);

ServiceRelationClientSideMetrics otherObject = new ServiceRelationClientSideMetrics();
otherObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
otherObject.setTimeBucket(202101071505L);

Assert.assertTrue(thisObject.equals(otherObject));
}

@Test
public void testServiceRelationClientSideMetricsNotEquals() {
ServiceRelationClientSideMetrics thisObject = new ServiceRelationClientSideMetrics();
thisObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
thisObject.setTimeBucket(202101071505L);

ServiceRelationClientSideMetrics otherObject = new ServiceRelationClientSideMetrics();
otherObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
otherObject.setTimeBucket(202101071506L);

Assert.assertFalse(thisObject.equals(otherObject));
}

@Test
public void testServiceRelationServerSideMetricsEquals() {
ServiceRelationServerSideMetrics thisObject = new ServiceRelationServerSideMetrics();
thisObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
thisObject.setTimeBucket(202101071505L);

ServiceRelationServerSideMetrics otherObject = new ServiceRelationServerSideMetrics();
otherObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
otherObject.setTimeBucket(202101071505L);

Assert.assertTrue(thisObject.equals(otherObject));
}

@Test
public void testServiceRelationServerSideMetricsNotEquals() {
ServiceRelationServerSideMetrics thisObject = new ServiceRelationServerSideMetrics();
thisObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
thisObject.setTimeBucket(202101071505L);

ServiceRelationServerSideMetrics otherObject = new ServiceRelationServerSideMetrics();
otherObject.setEntityId("VXNlcg==.0-em0tY2xpZW50LXNldHRpbmctd2ViYXBpQDEwNjQ4.1");
otherObject.setTimeBucket(202101071506L);

Assert.assertFalse(thisObject.equals(otherObject));
}
}

0 comments on commit 5fd06a7

Please sign in to comment.