#
# Pinpoint agent configuration
#

###########################################################
# Collector server                                        # 
###########################################################
profiler.collector.ip=172.29.2.15

# placeHolder support "${key}"
profiler.collector.span.ip=${profiler.collector.ip}
profiler.collector.span.port=9996

# placeHolder support "${key}"
profiler.collector.stat.ip=${profiler.collector.ip}
profiler.collector.stat.port=9995

# placeHolder support "${key}"
profiler.collector.tcp.ip=${profiler.collector.ip}
profiler.collector.tcp.port=9994

###########################################################
# Profiler Global Configuration                           # 
###########################################################
profiler.enable=true

# Application namespace
# Differentiate from external pinpoint agents. (e.g., com.pinpoint)
profiler.application.namespace=

profiler.interceptorregistry.size=8192

# Manually override jvm vendor name (Oracle, IBM, OpenJDK, etc)
# You probably won't ever need to set this value.
profiler.jvm.vendor.name=

# Interval (in milliseconds) at which agent stat data is collected. (default : 5000, min : 1000, max : 5000)
profiler.jvm.stat.collect.interval=5000
# Number of agent stat data sent to the collector in a single batch. (default : 6)
profiler.jvm.stat.batch.send.count=6

# Allow to add detailed collector's metrics
profiler.jvm.stat.collect.detailed.metrics=true

# Allow sampling.
profiler.sampling.enable=true

# 1 out of n transactions will be sampled where n is the rate. (20: 5%)
profiler.sampling.rate=1

# Permits per second, if throughput is 0, it is unlimited.
# "New" is a transaction that is newly traced.
profiler.sampling.new.throughput=0
# "Continue" is a transaction that is already being tracked.
profiler.sampling.continue.throughput=0

# Allow buffering when flushing span to IO.
profiler.io.buffering.enable=true

# How many spans to store if buffering enabled.
profiler.io.buffering.buffersize=20

###########################################################
# Base Tcp Sender                                        #
###########################################################
# Allow TCP data command.
profiler.tcpdatasender.command.accept.enable=true
profiler.tcpdatasender.command.activethread.enable=true
profiler.tcpdatasender.command.activethread.count.enable=true
profiler.tcpdatasender.command.activethread.threaddump.enable=true
profiler.tcpdatasender.command.activethread.threadlightdump.enable=true

profiler.tcpdatasender.client.write.timeout=3000
profiler.tcpdatasender.client.request.timeout=3000
profiler.tcpdatasender.client.reconnect.interval=3000
profiler.tcpdatasender.client.ping.interval=300000
profiler.tcpdatasender.client.handshake.interval=60000

profiler.tcpdatasender.client.write.buffer.highwatermark=32m
profiler.tcpdatasender.client.write.buffer.lowwatermark=16m

# Interval to retry sending agent info. Unit is milliseconds.
profiler.agentInfo.send.retry.interval=300000


###########################################################
# Stat Data Sender                                        #
###########################################################
# Should keep in mind
# 1. Loadbancing : TCP transport load balancing is per connection.(UDP transport loadbalancing is per packet)
# 2. In unexpected situations, UDP has its own protection feature (like packet loss etc.), but tcp does not have such a feature. (We will add protection later)
profiler.statdatasender.transport.type=UDP

# These settings are active only when using UDP.
# Capacity of the StatDataSender write queue.
profiler.statdatasender.write.queue.size=5120
#profiler.statdatasender.socket.sendbuffersize=1048576
#profiler.statdatasender.socket.timeout=3000
profiler.statdatasender.chunk.size=16384
profiler.statdatasender.socket.type=OIO

# These settings are active only when using TCP.
profiler.statdatasender.write.buffer.highwatermark=16m
profiler.statdatasender.write.buffer.lowwatermark=8m


###########################################################
# Span Data Sender                                        #
###########################################################
# Should keep in mind
# 1. Loadbancing : TCP transport load balancing is per connection.(UDP transport loadbalancing is per packet)
# 2. In unexpected situations, UDP has its own protection feature (like packet loss etc.), but tcp does not have such a feature. (We will add protection later)
profiler.spandatasender.transport.type=UDP

# These settings are active only when using UDP.
# Capacity of the SpanDataSender write queue.
profiler.spandatasender.write.queue.size=5120
#profiler.spandatasender.socket.sendbuffersize=1048576
#profiler.spandatasender.socket.timeout=3000
profiler.spandatasender.chunk.size=16384
profiler.spandatasender.socket.type=OIO

# These settings are active only when using TCP.
profiler.spandatasender.write.buffer.highwatermark=16m
profiler.spandatasender.write.buffer.lowwatermark=8m


# Trace Agent active thread info.
profiler.pinpoint.activethread=true

# Trace DataSource
profiler.pinpoint.datasource=true

# Deadlock Monitor
profiler.monitor.deadlock.enable=true
profiler.monitor.deadlock.interval=60000

## Call Stack
# Set max depth, if -1 is unlimited and min is 2.
profiler.callstack.max.depth=64

# weather or not to propagate exceptions occurred at interceptor
profiler.interceptor.exception.propagate=false

# Allow bytecode framework (ASM only)
profiler.instrument.engine=ASM

# bytecode dump option
# java bytecode debug option
bytecode.dump.enable=false
#bytecode.dump.classlist=com.naver.user.UserService,com.pinpoint.debug.TestClass
bytecode.dump.classlist=
bytecode.dump.bytecode=false
bytecode.dump.verify=false
bytecode.dump.asm=false

# Matcher
profiler.instrument.matcher.enable=true
# Matcher cache. max size is 64.
profiler.instrument.matcher.interface.cache.size=4
profiler.instrument.matcher.interface.cache.entry.size=16
profiler.instrument.matcher.annotation.cache.size=4
profiler.instrument.matcher.annotation.cache.entry.size=4
profiler.instrument.matcher.super.cache.size=4
profiler.instrument.matcher.super.cache.entry.size=4

# Lambda expressions.
profiler.lambda.expressions.support=true

# Proxy HTTP headers.
# Please see (https://github.com/naver/pinpoint/blob/master/doc/proxy-http-header.md) for more information.
profiler.proxy.http.header.enable=true

# HTTP status code with request failure.
# 1xx, 2xx, 3xx, 4xx, 5xx, 100, 101, 200, 201, ... 501, 502, 503, 504, 505
# e.g. profiler.http.status.code.errors=5xx, 401, 403
profiler.http.status.code.errors=5xx

###########################################################
# application type                                        # 
###########################################################
#profiler.applicationservertype=TOMCAT
#profiler.applicationservertype=BLOC

###########################################################
# application type detect order                           # 
###########################################################
profiler.type.detect.order=

profiler.plugin.disable=

###########################################################
# user defined classes                                    # 
###########################################################
# Specify classes and methods you want to profile here.

# Needs to be a comma separated list of fully qualified class names, or fully qualified package names with wild card class.
profiler.include=
# Ex: foo.bar.MyClass, foo.baz.*

# Needs to be a comma separated list of fully qualified method names. Wild card not supported.
profiler.entrypoint=
# Ex: foo.bar.MyClass.myMethod, foo.bar.MyClass.anotherMethod

# Message queue listener invoker methods.
# This is usually for when a separate implementation or a framework provides a separate handler for invoking callbacks
# when consuming messages.
# Comma-separated list of fully qualified method names with a Message argument.
profiler.message.queue.client.handler.methods=org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener,org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener

###########################################################
# TOMCAT                                                  #
###########################################################
profiler.tomcat.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.tomcat.bootstrap.main=org.apache.catalina.startup.Bootstrap
# Check pre-conditions when registering class file transformers mainly due to JBoss plugin transforming the same class.
# Setting this to true currently adds transformers only if the application was launched via org.apache.catalina.startup.Bootstrap,
# or SpringBoot's launchers.
# Set this to false to bypass this check entirely (such as when launching standalone applications running embedded Tomcat).
profiler.tomcat.conditional.transform=true
# Hide pinpoint headers.
profiler.tomcat.hidepinpointheader=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.tomcat.excludeurl=/aa/test.html, /bb/exclude.html
profiler.tomcat.tracerequestparam=true
# HTTP Request methods to exclude from tracing
#profiler.tomcat.excludemethod=POST,PUT

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.tomcat.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.tomcat.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.tomcat.realipemptyvalue}, Ignore header value.
#profiler.tomcat.realipemptyvalue=unknown


###########################################################
# JETTY                                                   #
###########################################################
profiler.jetty.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.jetty.bootstrap.main=org.eclipse.jetty.start.Main
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.jetty.excludeurl=
# HTTP Request methods to exclude from tracing
#profiler.jetty.excludemethod=
# Hide pinpoint headers.
profiler.jetty.hide-pinpoint-header=true
profiler.jetty.tracerequestparam=true

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.jetty.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.jetty.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.jetty.realipemptyvalue}, Ignore header value.
#profiler.jetty.realipemptyvalue=unknown

###########################################################
# DUBBO                                                   #
###########################################################
profiler.dubbo.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.dubbo.bootstrap.main=com.alibaba.dubbo.container.Main


###########################################################
# JBOSS                                                   #
###########################################################
profiler.jboss.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.jboss.bootstrap.main=org.jboss.modules.Main
# Check pre-conditions when registering class file transformers mainly due to Tomcat plugin transforming the same class.
# Setting this to true currently adds transformers only if the application was launched via org.jboss.modules.Main.
# Set this to false to bypass this check entirely.
profiler.jboss.conditional.transform=true
# Hide pinpoint headers.
profiler.jboss.hidepinpointheader=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.jboss.excludeurl=
# HTTP Request methods to exclude from tracing
#profiler.jboss.excludemethod=
profiler.jboss.tracerequestparam=true

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.jboss.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.jboss.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.jboss.realipemptyvalue}, Ignore header value.
#profiler.jboss.realipemptyvalue=unknown

###########################################################
# Resin
###########################################################
# default enable resin plugin
profiler.resin.enable=true
# if empty , default value is : com.caucho.server.resin.Resin
profiler.resin.bootstrap.main=
# trace param in request  ,default value is true
profiler.resin.tracerequestparam=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.resin.excludeurl=
# Hide pinpoint headers.
profiler.resin.hidepinpointheader=true
# HTTP Request methods to exclude from tracing
#profiler.resin.excludemethod=

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.resin.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.resin.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.resin.realipemptyvalue}, Ignore header value.
#profiler.resin.realipemptyvalue=unknown


###########################################################
# Weblogic
###########################################################
profiler.weblogic.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.weblogic.bootstrap.main=weblogic.Server
# trace param in request  ,default value is true
profiler.weblogic.tracerequestparam=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.weblogic.excludeurl=
# HTTP Request methods to exclude from tracing
#profiler.weblogic.excludemethod=

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.weblogic.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.weblogic.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.weblogic.realipemptyvalue}, Ignore header value.
#profiler.weblogic.realipemptyvalue=unknown

###########################################################
# Vert.x(Reliability and stability can not be guaranteed) #
###########################################################
profiler.vertx.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.vertx.bootstrap.main=io.vertx.core.Starter
# Track Vertx.runOnContext() & Vertx.executeBlocking().
# Sets the base packages that implements io.vertx.core.Handler.
profiler.vertx.handler.base-packages=
# e.g. com.service.handler, com.server.http.handler

# HTTP server
profiler.vertx.http.server.enable=true
# Set HttpServerRequestHandler method name. The argument is io.vertx.core.http.HttpServerRequest.
profiler.vertx.http.server.request-handler.method.name=io.vertx.ext.web.impl.RouterImpl.accept
profiler.vertx.http.server.tracerequestparam=true
profiler.vertx.http.server.hidepinpointheader=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.vertx.http.server.excludeurl=
# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.vertx.http.server.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.vertx.http.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.vertx.http.server.realipemptyvalue}, Ignore header value.
#profiler.vertx.http.server.realipemptyvalue=unknown
# HTTP Request methods to exclude from tracing
#profiler.vertx.http.server.excludemethod=

# HTTP client
profiler.vertx.http.client.enable=true
profiler.vertx.http.client.param=true
profiler.vertx.http.client.cookie=true
# When to dump cookies. Either ALWAYS or EXCEPTION.
profiler.vertx.http.client.cookie.dumptype=ALWAYS
# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.vertx.http.client.cookie.sampling.rate=1
profiler.vertx.http.client.entity.statuscode=true


###########################################################
# Undertow
###########################################################
profiler.undertow.enable=true
# Servlet deployment support(e.g. Spring Boot Undertow, Wildfly)
# If it is bootstrapped Undertow, set it to false.
profiler.undertow.deploy.servlet=true
# trace param in request  ,default value is true
profiler.undertow.tracerequestparam=true
# Hide pinpoint headers.
profiler.undertow.hidepinpointheader=true
# URLs to exclude from tracing.
# Support ant style pattern. e.g. /aa/*.html, /??/exclude.html
profiler.undertow.excludeurl=
# HTTP Request methods to exclude from tracing
#profiler.undertow.excludemethod=

# original IP address header
# https://en.wikipedia.org/wiki/X-Forwarded-For
#profiler.undertow.realipheader=X-Forwarded-For
# nginx real ip header
#profiler.undertow.realipheader=X-Real-IP
# optional parameter, If the header value is ${profiler.undertow.realipemptyvalue}, Ignore header value.
#profiler.undertow.realipemptyvalue=unknown

###########################################################
# SPRING BOOT                                             #
###########################################################
profiler.springboot.enable=true
# Classes for detecting application server type. Comma separated list of fully qualified class names. Wildcard not supported.
profiler.springboot.bootstrap.main=org.springframework.boot.loader.JarLauncher, org.springframework.boot.loader.WarLauncher, org.springframework.boot.loader.PropertiesLauncher

###########################################################
# JSP                                                     #
###########################################################
profiler.jsp.enable=true

###########################################################
# JDBC                                                    # 
###########################################################
# Profile JDBC drivers.
profiler.jdbc=true
# Size of cache. Fixed maximum.
profiler.jdbc.sqlcachesize=1024
# trace bindvalues for PreparedStatements
profiler.jdbc.tracesqlbindvalue=true
# Maximum bindvalue size.
profiler.jdbc.maxsqlbindvaluesize=1024

#
# MYSQL
#
# Profile MySQL.
profiler.jdbc.mysql=true
# Allow profiling of setautocommit.
profiler.jdbc.mysql.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.mysql.commit=true
# Allow profiling of rollback.
profiler.jdbc.mysql.rollback=true
# Trace bindvalues for MySQL PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.jdbc.mysql.tracesqlbindvalue=true

#
# MARIADB
#
# Profile MariaDB
profiler.jdbc.mariadb=true
# Allow profiling of setautocommit.
profiler.jdbc.mariadb.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.mariadb.commit=true
# Allow profiling of rollback.
profiler.jdbc.mariadb.rollback=true
# Trace bindvalues for MariaDB PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.jdbc.mariadb.tracesqlbindvalue=true

#
# MSSQL Jtds
#
# Profile jTDS.
profiler.jdbc.jtds=true
# Allow profiling of setautocommit.
profiler.jdbc.jtds.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.jtds.commit=true
# Allow profiling of rollback.
profiler.jdbc.jtds.rollback=true
# Trace bindvalues for jTDS PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.jdbc.jtds.tracesqlbindvalue=true

#
# Oracle
#
# Profile Oracle DB.
profiler.jdbc.oracle=true
# Allow profiling of setautocommit.
profiler.jdbc.oracle.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.oracle.commit=true
# Allow profiling of rollback.
profiler.jdbc.oracle.rollback=true
# Trace bindvalues for Oracle PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.jdbc.oracle.tracesqlbindvalue=true

#
# CUBRID
#
# Profile CUBRID.
profiler.jdbc.cubrid=true
# Allow profiling of setautocommit.
profiler.jdbc.cubrid.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.cubrid.commit=true
# Allow profiling of rollback.
profiler.jdbc.cubrid.rollback=true
# Trace bindvalues for CUBRID PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.jdbc.cubrid.tracesqlbindvalue=true

#
# DBCP
#
# Profile DBCP.
profiler.jdbc.dbcp=true
profiler.jdbc.dbcp.connectionclose=true

#
# DBCP2
#
# Profile DBCP2.
profiler.jdbc.dbcp2=true
profiler.jdbc.dbcp2.connectionclose=true

#
# HIKARICP
#
profiler.jdbc.hikaricp=true
profiler.jdbc.hikaricp.connectionclose=true

#
# DRUID
#
profiler.jdbc.druid=true
profiler.jdbc.druid.connectionclose=true

#
# CASSANDRA
#
# Profile CASSANDRA.
profiler.cassandra=true
# Trace bindvalues for CASSANDRA PreparedStatements (overrides profiler.jdbc.tracesqlbindvalue)
#profiler.cassandra.tracecqlbindvalue=true

#
# PostgreSQL
#
# Profile PostgreSQL.
profiler.jdbc.postgresql=true
# Allow profiling of setautocommit.
profiler.jdbc.postgresql.setautocommit=true
# Allow profiling of commit.
profiler.jdbc.postgresql.commit=true
# Allow profiling of rollback.
profiler.jdbc.postgresql.rollback=true

###########################################################
# MONGODB
###########################################################
profiler.mongo=true
profiler.mongo.collectjson=true
profiler.mongo.tracebsonbindvalue=true

###########################################################
# Apache HTTP Client  3.x                                 #
###########################################################
# Record Parameter.
profiler.apache.httpclient3.param=true

# Record Cookies.
profiler.apache.httpclient3.cookie=true

# When to dump cookies. Either ALWAYS or EXCEPTION.
profiler.apache.httpclient3.cookie.dumptype=ALWAYS
# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.apache.httpclient3.cookie.sampling.rate=1

# Dump entities of POST and PUT requests. Limited to entities where HttpEntity.isRepeatable() == true.
profiler.apache.httpclient3.entity=true

# When to dump entities. Either ALWAYS or EXCEPTION.
profiler.apache.httpclient3.entity.dumptype=ALWAYS
# 1 out of n entities will be sampled where n is the rate. (10: 10%)
profiler.apache.httpclient3.entity.sampling.rate=1

# Record IO time.
profiler.apache.httpclient3.io=true

###########################################################
# Apache HTTP Client  4.x                                 #
###########################################################
# Record Parameter.
profiler.apache.httpclient4.param=true

# Record cookies.
profiler.apache.httpclient4.cookie=true

# When cookies should be dumped. It could be ALWAYS or EXCEPTION.
profiler.apache.httpclient4.cookie.dumptype=ALWAYS

# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.apache.httpclient4.cookie.sampling.rate=1

# Dump entities of POST and PUT requests. Limited to entities where HttpEntity.isRepeatable() == true.
profiler.apache.httpclient4.entity=true

# When to dump entities. Either ALWAYS or EXCEPTION.
profiler.apache.httpclient4.entity.dumptype=ALWAYS

# 1 out of n entities will be sampled where n is the rate. (10: 10%)
profiler.apache.httpclient4.entity.sampling.rate=1

# Allow profiling status code value.
profiler.apache.httpclient4.entity.statuscode=true

# Record IO time.
profiler.apache.httpclient4.io=true

# Not supported yet.
#profiler.apache.nio.httpclient4=true

###########################################################
# JDK HTTPURLConnection                                   #
###########################################################
# Profile parameter.
profiler.jdk.http.param=true

###########################################################
# Ning Async HTTP Client                                  # 
###########################################################
# Profile Ning Async HTTP Client.
profiler.ning.asynchttpclient=true

# Record parameters. (unsupported in 1.8.x, 1.9.x versions)
profiler.ning.asynchttpclient.param=true

# Record cookies.
profiler.ning.asynchttpclient.cookie=true
# When to dump cookies. Either ALWAYS or EXCEPTION.
profiler.ning.asynchttpclient.cookie.dumptype=ALWAYS
# Cookie dump size.
profiler.ning.asynchttpclient.cookie.dumpsize=1024
# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.ning.asynchttpclient.cookie.sampling.rate=1

# Record Entities.
profiler.ning.asynchttpclient.entity=true
# When to dump entities. Either ALWAYS or EXCEPTION.
profiler.ning.asynchttpclient.entity.dumptype=ALWAYS
# Entity dump size.
profiler.ning.asynchttpclient.entity.dumpsize=1024
# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.ning.asynchttpclient.entity.sampling.rate=1

###########################################################
# Arcus                                                   # 
###########################################################
# Profile Arcus.
profiler.arcus=true
profiler.arcus.async=true
# Record keytrace.
profiler.arcus.keytrace=true

###########################################################
# Memcached                                               # 
###########################################################
# Profile Memecached.
profiler.memcached=true
profiler.memcached.async=true
# Record keytrace
profiler.memcached.keytrace=true

###########################################################
# Thrift                                                  # 
###########################################################
# Profile Thrift
profiler.thrift.client=true
profiler.thrift.client.async=true
# Profile processor.
profiler.thrift.processor=true
profiler.thrift.processor.async=true
# Allow recording arguments.
profiler.thrift.service.args=true
# Allow recording result.
profiler.thrift.service.result=true


###########################################################
# ibatis                                                  # 
###########################################################
# Profile ibatis.
profiler.orm.ibatis=true

###########################################################
# mybatis                                                 # 
###########################################################
# Profile mybatis
profiler.orm.mybatis=true

###########################################################
# spring-beans 
###########################################################
# Profile spring-beans
profiler.spring.beans=true

# filters
#    filter
#    filter OR filters
# filter
#    value
#    value AND filter
# value
#    token
#    token OR token
# token
#    profiler.spring.beans.n.scope= [component-scan | post-processor] default is component-scan.
#    profiler.spring.beans.n.base-packages= [package name, ...]
#    profiler.spring.beans.n.name.pattern= [regex pattern, regex:regex pattern, antstyle:antstyle pattern, ...]
#    profiler.spring.beans.n.class.pattern= [regex pattern, regex:regex pattern, antstyle:antstyle pattern, ...]
#    profiler.spring.beans.n.annotation= [annotation name, ...]
#
# Scope:
# component-scan: <context:component-scan ... /> or @ComponentScan
# post-processor: BeanPostProcessor - Slow!!!
#
# ANT Style pattern rules:
# ? - matches on character
# * - matches zero or more characters
# ** - matches zero or more 'directories' in a path

# Examples
# profiler.spring.beans.1.scope=component-scan
# profiler.spring.beans.1.base-packages=com.foo, com.bar
# profiler.spring.beans.1.name.pattern=.*Foo, regex:.*Bar, antstyle:*Controller
# profiler.spring.beans.1.class.pattern=
# profiler.spring.beans.1.annotation=org.springframework.stereotype.Controller,org.springframework.stereotype.Service,org.springframework.stereotype.Repository
#
# profiler.spring.beans.2.scope=post-processor
# profiler.spring.beans.2.base-packages=com.foo
# profiler.spring.beans.2.name.pattern=
# profiler.spring.beans.2.class.pattern=antstyle:com.foo.repository.*Repository, antstyle:com.foo.Service.Main*
# profiler.spring.beans.2.annotation=

profiler.spring.beans.1.scope=component-scan
profiler.spring.beans.1.base-packages=
profiler.spring.beans.1.name.pattern=
profiler.spring.beans.1.class.pattern=
profiler.spring.beans.1.annotation=org.springframework.stereotype.Controller,org.springframework.stereotype.Service,org.springframework.stereotype.Repository

profiler.spring.beans.mark.error=false

###########################################################
# spring @Async
###########################################################
profiler.spring.async.enable=true
# Add custom AsyncTaskExecutor classes. Comma separated list of fully qualified class names. Wildcard not supported.
# Default values
#     org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
#     org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
#     org.springframework.core.task.SimpleAsyncTaskExecutor
#     org.springframework.scheduling.quartz.SimpleThreadPoolTaskExecutor
#     org.springframework.core.task.support.TaskExecutorAdapter
#     org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
#     org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
#     org.springframework.jca.work.WorkManagerTaskExecutor
#     org.springframework.scheduling.commonj.WorkManagerTaskExecutor
profiler.spring.async.executor.class.names=

###########################################################
# log4j (guide url : https://github.com/naver/pinpoint/blob/master/doc/per-request_feature_guide.md)
###########################################################
profiler.log4j.logging.transactioninfo=false

###########################################################
# log4j2 (guide url : https://github.com/naver/pinpoint/blob/master/doc/per-request_feature_guide.md)
###########################################################
profiler.log4j2.logging.transactioninfo=false

###########################################################
# logback (guide url : https://github.com/naver/pinpoint/blob/master/doc/per-request_feature_guide.md)
###########################################################
profiler.logback.logging.transactioninfo=false

###########################################################
# google httpclient 
###########################################################
# Profile async.
profiler.google.httpclient.async=true

###########################################################
# redis 
###########################################################
# Jedis client
profiler.redis.jedis.enable=true
profiler.redis.jedis.pipeline=true
profiler.redis.jedis.io=true

// Lettuce client
profiler.redis.lettuce.enable=true

###########################################################
# OkHttp
###########################################################
profiler.okhttp.enable=true
# Record param.
profiler.okhttp.param=true

# Record Cookies.
profiler.okhttp.cookie=false
# When to dump cookies. Either ALWAYS or EXCEPTION.
profiler.okhttp.cookie.dumptype=EXCEPTION
# 1 out of n cookies will be sampled where n is the rate. (1: 100%)
profiler.okhttp.cookie.sampling.rate=1
# enqueue operation
profiler.okhttp.async=true

###########################################################
# Apache CXF
# Version 2.6.2+ is supported.
# Note: logging.enable must use cxf logging
# see http://cxf.apache.org/docs/message-logging.html
###########################################################
profiler.cxf.service.enable=true
profiler.cxf.logging.enable=false

###########################################################
# fastjson
###########################################################
profiler.json.fastjson=false

###########################################################
# gson
###########################################################
profiler.json.gson=false

###########################################################
# jackson
###########################################################
profiler.json.jackson=false

###########################################################
# json-lib
###########################################################
profiler.json.jsonlib=false

###########################################################
# ActiveMQ Client
###########################################################
profiler.activemq.client.enable=true
profiler.activemq.client.producer.enable=true
profiler.activemq.client.consumer.enable=true
profiler.activemq.client.trace.message=false

# ActiveMQ destination path separator (default is ".")
profiler.activemq.client.destination.separator=

# ActiveMQ destinations to exclude from tracing (comma seprated list of ant-matched destinations)
profiler.activemq.client.destination.exclude=

###########################################################
# RxJava
###########################################################
profiler.rxjava=false

###########################################################
# Hystrix
###########################################################
# profiler.rxjava must also be enabled to properly trace hystrix commands
profiler.hystrix=false

###########################################################
# RestTemplate
###########################################################
profiler.resttemplate=false

###########################################################
# Netty
###########################################################
# recommend netty plugin disable, when using VERTX.
profiler.netty=false
profiler.netty.http=false

###########################################################
# RabbitMQ Client
###########################################################
profiler.rabbitmq.client.enable=true
profiler.rabbitmq.client.producer.enable=true
profiler.rabbitmq.client.consumer.enable=true
# Custom consumer classes to be traced (comma separated list of fully qualified class names)
# If a consumer class is an inner class, specify the outer class
profiler.rabbitmq.client.consumer.classes=
# RabbitMQ exchange to exclude from tracing (comma seprated list of ant-matched destinations)
profiler.rabbitmq.client.exchange.exclude=

###########################################################
# Akka HTTP (Reliability and stability can not be guaranteed)
###########################################################
# HTTP server
profiler.akka.http.enable=false
# original IP address header
profiler.akka.http.realipheader=Remote-Address
# URLs to exclude from tracing
profiler.akka.http.excludeurl=
# HTTP Request methods to exclude from tracing
profiler.akka.http.excludemethod=
# Set transform target
# If you are using another directive, change below config 
profiler.akka.http.transform.targetname=akka.http.scaladsl.server.directives.BasicDirectives.$anonfun$mapRequestContext$2
profiler.akka.http.transform.targetparameter=scala.Function1,scala.Function1,akka.http.scaladsl.server.RequestContext

###########################################################
# Kafka (Reliability and stability can not be guaranteed)
# Version 0.11+ is supported.
# Note: RemoteTrace will not occur if the method specified in the profiler.kafka.consumer.entryPoint is not the first trace point.
###########################################################
profiler.kafka.producer.enable=false
profiler.kafka.consumer.enable=false
# Setting when using spring-kafka (In this case, you can leave profiler.kafka.consumer.entryPoint option to empty.)
profiler.springkafka.consumer.enable=false
// you must set target that handles ConsumerRecord or ConsumerRecords(Remote Trace feature is not enabled.) as a argument for remote trace
// ex) profiler.kafka.consumer.entryPoint=clazzName.methodName
profiler.kafka.consumer.entryPoint=

###########################################################
# Hbase (Reliability and stability can not be guaranteed)
###########################################################
profiler.hbase.client.enable=true
profiler.hbase.client.admin.enable=true
profiler.hbase.client.table.enable=true
profiler.hbase.client.params.enable=false

###########################################################
# GRPC (Reliability and stability can not be guaranteed)
# Version 1.6.0+ is supported.
###########################################################
profiler.grpc.client.enable=false
profiler.grpc.server.enable=false
# In case of streaming, does not track all of each stream request.
# After the streaming open in client, all of each stream request are tracked in one remote trace.
# Therefore, tracking stream request  that you want can be difficult.
# please be sure that this description.
profiler.grpc.server.streaming.enable=false
profiler.grpc.server.streaming.onmessage.enable=false

###########################################################
# Openwhisk (Reliability and stability can not be guaranteed)
# Note: To use Openwhisk plugin, please enable Akka HTTP Plugin and
# change transform target config as follows
# - profiler.akka.http.transform.targetname=akka.http.scaladsl.server.directives.ExecutionDirectives$$anonfun$handleExceptions$1$$anonfun$apply$1.apply
# - profiler.akka.http.transform.targetparameter=akka.http.scaladsl.server.RequestContext
###########################################################
profiler.openwhisk.enable=false
profiler.openwhisk.logging.message=false
profiler.openwhisk.transform.targetname=whisk.http.BasicHttpService$$anonfun$assignId$1$$anonfun$apply$13
