Skip to content

Commit

Permalink
Use FiniteDuration instead of numbers with implicit time unit
Browse files Browse the repository at this point in the history
  • Loading branch information
slandelle committed Sep 14, 2018
1 parent 8b242f4 commit 11308fc
Show file tree
Hide file tree
Showing 11 changed files with 45 additions and 44 deletions.
2 changes: 2 additions & 0 deletions gatling-core/src/main/resources/config-renamed.properties
Expand Up @@ -16,3 +16,5 @@ gatling.http.ahc.allowPoolingConnections=gatling.http.ahc.keepAlive
gatling.http.ahc.acceptAnyCertificate=gatling.http.ahc.disableHttpsEndpointIdentificationAlgorithm
gatling.http.ahc.disableHttpsAlgorithm=gatling.http.ahc.disableHttpsEndpointIdentificationAlgorithm
gatling.http.ahc.disableHttpsEndpointIdentificationAlgorithm=gatling.http.ahc.enableHostnameVerification
gatling.data.console.writeInterval=gatling.data.console.writePeriod
gatling.data.graphite.writeInterval=gatling.data.graphite.writePeriod
16 changes: 8 additions & 8 deletions gatling-core/src/main/resources/gatling-defaults.conf
Expand Up @@ -72,11 +72,11 @@ gatling {
}
}
ahc {
connectTimeout = 10000 # Timeout when establishing a connection
handshakeTimeout = 10000 # Timeout when performing TLS handshake
pooledConnectionIdleTimeout = 60000 # Timeout when a connection stays unused in the pool
connectTimeout = 10000 # Timeout in millis for establishing a TCP socket
handshakeTimeout = 10000 # Timeout in millis for performing TLS handshake
pooledConnectionIdleTimeout = 60000 # Timeout in millis for a connection to stay idle in the pool
maxRetry = 2 # Number of times that a request should be tried again
requestTimeout = 60000 # Timeout of the requests
requestTimeout = 60000 # Timeout in millis for performing an HTTP request
enableSni = true # When set to true, enable Server Name indication (SNI)
enableHostnameVerification = false # When set to true, enable hostname verification: SSLEngine.setHttpsEndpointIdentificationAlgorithm("HTTPS")
useInsecureTrustManager = true # Use an insecure TrustManager that trusts all server certificates
Expand All @@ -95,7 +95,7 @@ gatling {
maxThreadLocalCharBufferSize = 200000 # Netty's default is 16k
}
dns {
queryTimeout = 5000 # Timeout of each DNS query in millis
queryTimeout = 5000 # Timeout in millis of each DNS query in millis
maxQueriesPerResolve = 6 # Maximum allowed number of DNS queries for a given name resolution
}
}
Expand All @@ -106,7 +106,7 @@ gatling {
writers = [console, file] # The list of DataWriters to which Gatling write simulation data (currently supported : console, file, graphite, jdbc)
console {
light = false # When set to true, displays a light version without detailed request stats
writeInterval = 5 # ConsoleDataWriter's write interval, in seconds
writePeriod = 5 # Write interval, in seconds
}
file {
bufferSize = 8192 # FileDataWriter's internal data buffer size, in bytes
Expand All @@ -120,8 +120,8 @@ gatling {
port = 2003 # The port to which the Carbon server listens to (2003 is default for plaintext, 2004 is default for pickle)
protocol = "tcp" # The protocol used to send data to Carbon (currently supported : "tcp", "udp")
rootPathPrefix = "gatling" # The common prefix of all metrics sent to Graphite
bufferSize = 8192 # GraphiteDataWriter's internal data buffer size, in bytes
writeInterval = 1 # GraphiteDataWriter's write interval, in seconds
bufferSize = 8192 # Internal data buffer size, in bytes
writePeriod = 1 # Write period, in seconds
}
}
}
4 changes: 2 additions & 2 deletions gatling-core/src/main/scala/io/gatling/core/ConfigKeys.scala
Expand Up @@ -135,7 +135,7 @@ object ConfigKeys {
}
object console {
val Light = "gatling.data.console.light"
val WriteInterval = "gatling.data.console.writeInterval"
val WritePeriod = "gatling.data.console.writePeriod"
}
object graphite {
val Light = "gatling.data.graphite.light"
Expand All @@ -144,7 +144,7 @@ object ConfigKeys {
val Protocol = "gatling.data.graphite.protocol"
val RootPathPrefix = "gatling.data.graphite.rootPathPrefix"
val BufferSize = "gatling.data.graphite.bufferSize"
val WriteInterval = "gatling.data.graphite.writeInterval"
val WritePeriod = "gatling.data.graphite.writePeriod"
}
}

Expand Down
Expand Up @@ -21,6 +21,7 @@ import java.util.ResourceBundle

import scala.collection.JavaConverters._
import scala.collection.mutable
import scala.concurrent.duration._
import scala.io.Codec

import io.gatling.commons.util.{ StringHelper, ConfigHelper }
Expand Down Expand Up @@ -165,11 +166,11 @@ object GatlingConfiguration extends StrictLogging {
)
},
ahc = AhcConfiguration(
connectTimeout = config.getInt(http.ahc.ConnectTimeout),
handshakeTimeout = config.getInt(http.ahc.HandshakeTimeout),
pooledConnectionIdleTimeout = config.getInt(http.ahc.PooledConnectionIdleTimeout),
connectTimeout = config.getInt(http.ahc.ConnectTimeout) millis,
handshakeTimeout = config.getInt(http.ahc.HandshakeTimeout) millis,
pooledConnectionIdleTimeout = config.getInt(http.ahc.PooledConnectionIdleTimeout) millis,
maxRetry = config.getInt(http.ahc.MaxRetry),
requestTimeout = config.getInt(http.ahc.RequestTimeout),
requestTimeout = config.getInt(http.ahc.RequestTimeout) millis,
enableSni = config.getBoolean(http.ahc.EnableSni),
enableHostnameVerification = {
val enable = config.getBoolean(http.ahc.EnableHostnameVerification)
Expand All @@ -184,7 +185,7 @@ object GatlingConfiguration extends StrictLogging {
sslEnabledProtocols = config.getStringList(http.ahc.SslEnabledProtocols).asScala.toList,
sslEnabledCipherSuites = config.getStringList(http.ahc.SslEnabledCipherSuites).asScala.toList,
sslSessionCacheSize = config.getInt(http.ahc.SslSessionCacheSize),
sslSessionTimeout = config.getInt(http.ahc.SslSessionTimeout),
sslSessionTimeout = config.getInt(http.ahc.SslSessionTimeout) seconds,
disableSslSessionResumption = config.getBoolean(http.ahc.DisableSslSessionResumption),
useOpenSsl = config.getBoolean(http.ahc.UseOpenSsl),
useNativeTransport = config.getBoolean(http.ahc.UseNativeTransport),
Expand All @@ -195,24 +196,24 @@ object GatlingConfiguration extends StrictLogging {
maxThreadLocalCharBufferSize = config.getInt(http.ahc.MaxThreadLocalCharBufferSize)
),
dns = DnsConfiguration(
queryTimeout = config.getInt(http.dns.QueryTimeout),
queryTimeout = config.getInt(http.dns.QueryTimeout) millis,
maxQueriesPerResolve = config.getInt(http.dns.MaxQueriesPerResolve)
)
),
jms = JmsConfiguration(
replyTimeoutScanPeriod = config.getLong(jms.ReplyTimeoutScanPeriod)
replyTimeoutScanPeriod = config.getLong(jms.ReplyTimeoutScanPeriod) millis
),
data = DataConfiguration(
dataWriters = config.getStringList(data.Writers).asScala.flatMap(DataWriterType.findByName),
console = ConsoleDataWriterConfiguration(
light = config.getBoolean(data.console.Light),
writeInterval = config.getInt(data.console.WriteInterval)
writePeriod = config.getInt(data.console.WritePeriod) seconds
),
file = FileDataWriterConfiguration(
bufferSize = config.getInt(data.file.BufferSize)
),
leak = LeakDataWriterConfiguration(
noActivityTimeout = config.getInt(data.leak.NoActivityTimeout)
noActivityTimeout = config.getInt(data.leak.NoActivityTimeout) seconds
),
graphite = GraphiteDataWriterConfiguration(
light = config.getBoolean(data.graphite.Light),
Expand All @@ -221,7 +222,7 @@ object GatlingConfiguration extends StrictLogging {
protocol = TransportProtocol(config.getString(data.graphite.Protocol).trim),
rootPathPrefix = config.getString(data.graphite.RootPathPrefix),
bufferSize = config.getInt(data.graphite.BufferSize),
writeInterval = config.getInt(data.graphite.WriteInterval)
writePeriod = config.getInt(data.graphite.WritePeriod) seconds
)
),
// [fl]
Expand Down Expand Up @@ -336,23 +337,23 @@ case class HttpConfiguration(
)

case class JmsConfiguration(
replyTimeoutScanPeriod: Long
replyTimeoutScanPeriod: FiniteDuration
)

case class AhcConfiguration(
connectTimeout: Int,
handshakeTimeout: Int,
pooledConnectionIdleTimeout: Int,
connectTimeout: FiniteDuration,
handshakeTimeout: FiniteDuration,
pooledConnectionIdleTimeout: FiniteDuration,
maxRetry: Int,
requestTimeout: Int,
requestTimeout: FiniteDuration,
enableSni: Boolean,
enableHostnameVerification: Boolean,
useInsecureTrustManager: Boolean,
filterInsecureCipherSuites: Boolean,
sslEnabledProtocols: List[String],
sslEnabledCipherSuites: List[String],
sslSessionCacheSize: Int,
sslSessionTimeout: Int,
sslSessionTimeout: FiniteDuration,
disableSslSessionResumption: Boolean,
useOpenSsl: Boolean,
useNativeTransport: Boolean,
Expand All @@ -365,7 +366,7 @@ case class AhcConfiguration(
)

case class DnsConfiguration(
queryTimeout: Int,
queryTimeout: FiniteDuration,
maxQueriesPerResolve: Int
)

Expand Down Expand Up @@ -409,12 +410,12 @@ case class FileDataWriterConfiguration(
)

case class LeakDataWriterConfiguration(
noActivityTimeout: Int
noActivityTimeout: FiniteDuration
)

case class ConsoleDataWriterConfiguration(
light: Boolean,
writeInterval: Int
light: Boolean,
writePeriod: FiniteDuration
)

case class GraphiteDataWriterConfiguration(
Expand All @@ -424,7 +425,7 @@ case class GraphiteDataWriterConfiguration(
protocol: TransportProtocol,
rootPathPrefix: String,
bufferSize: Int,
writeInterval: Int
writePeriod: FiniteDuration
)

// [fl]
Expand Down
Expand Up @@ -17,7 +17,6 @@
package io.gatling.core.stats.writer

import scala.collection.mutable
import scala.concurrent.duration.DurationInt

import io.gatling.commons.stats.{ KO, OK }
import io.gatling.commons.util.Clock
Expand Down Expand Up @@ -61,7 +60,7 @@ class ConsoleDataWriter(clock: Clock, configuration: GatlingConfiguration) exten

scenarios.foreach(scenario => data.usersCounters.put(scenario.name, new UserCounters(scenario.totalUserCount)))

setTimer(flushTimerName, Flush, configuration.data.console.writeInterval seconds, repeat = true)
setTimer(flushTimerName, Flush, configuration.data.console.writePeriod, repeat = true)

data
}
Expand Down
Expand Up @@ -17,7 +17,7 @@
package io.gatling.core.stats.writer

import scala.collection.mutable
import scala.concurrent.duration.{ DurationInt, FiniteDuration }
import scala.concurrent.duration.FiniteDuration

import io.gatling.commons.util.Clock
import io.gatling.core.config.GatlingConfiguration
Expand All @@ -31,7 +31,7 @@ class LeakReporterDataWriter(clock: Clock, configuration: GatlingConfiguration)

def onInit(init: Init): LeakData = {

val noActivityTimeout = configuration.data.leak.noActivityTimeout seconds
val noActivityTimeout = configuration.data.leak.noActivityTimeout

setTimer(flushTimerName, Flush, noActivityTimeout, repeat = true)

Expand Down
Expand Up @@ -17,7 +17,6 @@
package io.gatling.graphite

import scala.collection.mutable
import scala.concurrent.duration.DurationInt

import io.gatling.commons.util.Clock
import io.gatling.commons.util.Collections._
Expand Down Expand Up @@ -57,7 +56,7 @@ private[gatling] class GraphiteDataWriter(clock: Clock, configuration: GatlingCo
usersByScenario.update(pattern.allUsersPath, new UserBreakdownBuffer(scenarios.sumBy(_.totalUserCount.getOrElse(0L))))
scenarios.foreach(scenario => usersByScenario += (pattern.usersPath(scenario.name) -> new UserBreakdownBuffer(scenario.totalUserCount.getOrElse(0L))))

setTimer(flushTimerName, Flush, configuration.data.graphite.writeInterval seconds, repeat = true)
setTimer(flushTimerName, Flush, configuration.data.graphite.writePeriod, repeat = true)

GraphiteData(metricsSender, requestsByPath, usersByScenario, pattern)
}
Expand Down
Expand Up @@ -40,7 +40,7 @@ class DnsNameResolverFactory(eventLoopGroup: EventLoopGroup, configuration: Gatl
def newAsyncDnsNameResolver(dnsServers: Array[InetSocketAddress]): ExtendedDnsNameResolver =
new ExtendedDnsNameResolver(
eventLoopGroup.next(),
configuration.http.dns.queryTimeout,
configuration.http.dns.queryTimeout.toMillis.toInt,
configuration.http.dns.maxQueriesPerResolve,
dnsServers
)
Expand Down
Expand Up @@ -57,9 +57,9 @@ private[gatling] class DefaultHttpClientFactory(coreComponents: CoreComponents)

private[gatling] def newClientConfig(): HttpClientConfig = {
val clientConfig = new HttpClientConfig()
.setConnectTimeout(ahcConfig.connectTimeout)
.setHandshakeTimeout(ahcConfig.handshakeTimeout)
.setChannelPoolIdleTimeout(ahcConfig.pooledConnectionIdleTimeout)
.setConnectTimeout(ahcConfig.connectTimeout.toMillis)
.setHandshakeTimeout(ahcConfig.handshakeTimeout.toMillis)
.setChannelPoolIdleTimeout(ahcConfig.pooledConnectionIdleTimeout.toMillis)
.setMaxRetry(ahcConfig.maxRetry)
.setEnableSni(ahcConfig.enableSni)
.setEnableHostnameVerification(ahcConfig.enableHostnameVerification)
Expand All @@ -73,7 +73,7 @@ private[gatling] class DefaultHttpClientFactory(coreComponents: CoreComponents)
.setUseOpenSsl(ahcConfig.useOpenSsl)
.setUseNativeTransport(ahcConfig.useNativeTransport)
.setSslSessionCacheSize(ahcConfig.sslSessionCacheSize)
.setSslSessionTimeout(ahcConfig.sslSessionTimeout)
.setSslSessionTimeout(ahcConfig.sslSessionTimeout.toSeconds)
.setDisableSslSessionResumption(ahcConfig.disableSslSessionResumption)
.setTcpNoDelay(ahcConfig.tcpNoDelay)
.setSoReuseAddress(ahcConfig.soReuseAddress)
Expand Down
Expand Up @@ -232,7 +232,7 @@ abstract class RequestExpressionBuilder(
requestBuilder = new AhcRequestBuilder(commonAttributes.method, uri)
.setDefaultCharset(configuration.core.charset)
.setFixUrlEncoding(!disableUrlEncoding)
.setRequestTimeout(configuration.http.ahc.requestTimeout)
.setRequestTimeout(configuration.http.ahc.requestTimeout.toMillis)
rb <- configureRequestBuilder(session, requestBuilder)
} yield rb.build
}
Expand Down
Expand Up @@ -59,7 +59,7 @@ case object TimeoutScan

object Tracker {
def props(statsEngine: StatsEngine, clock: Clock, configuration: GatlingConfiguration) =
Props(new Tracker(statsEngine, clock, configuration.jms.replyTimeoutScanPeriod milliseconds))
Props(new Tracker(statsEngine, clock, configuration.jms.replyTimeoutScanPeriod))
}

/**
Expand Down

0 comments on commit 11308fc

Please sign in to comment.