blob: b57d4167c56e4cadf8b7e321625ca52fba64fbd9 [file] [log] [blame]
/*
* 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.camel.zipkin.starter;
import java.util.Map;
import java.util.Set;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "camel.zipkin")
public class ZipkinConfigurationProperties {
/**
* Sets the POST URL for zipkin's <a href="http://zipkin.io/zipkin-api/#/">v2 api</a>, usually
* "http://zipkinhost:9411/api/v2/spans"
*/
private String endpoint;
/**
* Sets the hostname if sending spans to a remote zipkin scribe (thrift RPC) collector.
*/
private String hostName;
/**
* Sets the port if sending spans to a remote zipkin scribe (thrift RPC) collector.
*/
private int port;
/**
* Configures a rate that decides how many events should be traced by zipkin.
* The rate is expressed as a percentage (1.0f = 100%, 0.5f is 50%, 0.1f is 10%).
*/
private float rate = 1.0f;
/**
* Whether to include the Camel message body in the zipkin traces.
*
* This is not recommended for production usage, or when having big payloads.
* You can limit the size by configuring camel.springboot.log-debug-max-chars option.
*/
private boolean includeMessageBody;
/**
* Whether to include message bodies that are stream based in the zipkin traces.
*
* This is not recommended for production usage, or when having big payloads.
* You can limit the size by configuring camel.springboot.log-debug-max-chars option.
*/
private boolean includeMessageBodyStreams;
/**
* To use a global service name that matches all Camel events
*/
private String serviceName;
/**
* Sets exclude pattern(s) that will disable tracing with zipkin for Camel messages that matches the pattern.
*/
private Set<String> excludePatterns;
/**
* Sets client service mapping(s) that matches Camel events to the given zipkin service name.
* The key is the pattern, the value is the service name.
*/
private Map<String, String> clientServiceMappings;
/**
* Sets server service mapping(s) that matches Camel events to the given zipkin service name.
* The key is the pattern, the value is the service name.
*/
private Map<String, String> serverServiceMappings;
// Getters & setters
public String getEndpoint() {
return endpoint;
}
public void setEndpoint(String endpoint) {
this.endpoint = endpoint;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public float getRate() {
return rate;
}
public void setRate(float rate) {
this.rate = rate;
}
public boolean isIncludeMessageBody() {
return includeMessageBody;
}
public void setIncludeMessageBody(boolean includeMessageBody) {
this.includeMessageBody = includeMessageBody;
}
public boolean isIncludeMessageBodyStreams() {
return includeMessageBodyStreams;
}
public void setIncludeMessageBodyStreams(boolean includeMessageBodyStreams) {
this.includeMessageBodyStreams = includeMessageBodyStreams;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public Set<String> getExcludePatterns() {
return excludePatterns;
}
public void setExcludePatterns(Set<String> excludePatterns) {
this.excludePatterns = excludePatterns;
}
public Map<String, String> getClientServiceMappings() {
return clientServiceMappings;
}
public void setClientServiceMappings(Map<String, String> clientServiceMappings) {
this.clientServiceMappings = clientServiceMappings;
}
public Map<String, String> getServerServiceMappings() {
return serverServiceMappings;
}
public void setServerServiceMappings(Map<String, String> serverServiceMappings) {
this.serverServiceMappings = serverServiceMappings;
}
}