Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
jowerner committed Jul 7, 2020
2 parents 4e82457 + 6784d4b commit 4ae14c5
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 2 deletions.
3 changes: 2 additions & 1 deletion doc/xltdoc/how-to/graphite.textile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ p. If enabled, XLT reports the following metrics to Graphite:
* runtime statistics (in total and per name), errors (in total and per name) and counts (in total) for
** transactions,
** actions,
** requests, and
** requests,
** page load timings, and
** custom timers,
* arrival rates (in total and per transaction name),
* bytes/sent received (in total and per request name),
Expand Down
30 changes: 30 additions & 0 deletions doc/xltdoc/release-notes/5.1.x.textile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,36 @@ position: 983
sorted: true
---

h2. XLT 5.1.2

See "here":https://github.com/Xceptance/XLT/milestone/5?closed=1 for the complete list of improvements and fixes.

h3. Load Testing

h4. Support new region asia-southeast2 in gce_admin

Google opened a new data center in Jakarta, Indonesia (asia-southeast2). @gce_admin@, our tool to manage machine instances in the Google cloud, now fully supports this new region as well.

h4. Page load timings missing in Graphite

In older versions of XLT, page load timings were reported as custom timers to Graphite. Since promoting page load timing data from custom timers to a dedicated data type in XLT 4.12.0, this data was no longer sent to Graphite by mistake.

This is fixed now, but note that this data is no longer stored to the "custom" subtrees, but to the "pageLoadTimings" subtrees instead. The bucket name structure for both specific page load timing records and summary records is similar to that of actions and custom timers. See below for an example how page load timing data is reported to Graphite:

bc(plain).
xlt.Posters.ac001.pageLoadTimings.Homepage__FirstContentfulPaint_.errors 0 1592575693
xlt.Posters.ac001.pageLoadTimings.Homepage__FirstContentfulPaint_.runtime.max 543 1592575693
xlt.Posters.ac001.pageLoadTimings.Homepage__FirstContentfulPaint_.runtime.mean 543.00 1592575693
xlt.Posters.ac001.pageLoadTimings.Homepage__FirstContentfulPaint_.runtime.min 543 1592575693
...
xlt.Posters.ac001.summary.pageLoadTimings.count 18 1592575693
xlt.Posters.ac001.summary.pageLoadTimings.errors 0 1592575693
xlt.Posters.ac001.summary.pageLoadTimings.runtime.max 543 1592575693
xlt.Posters.ac001.summary.pageLoadTimings.runtime.mean 270.17 1592575693
xlt.Posters.ac001.summary.pageLoadTimings.runtime.min 20 1592575693



h2. XLT 5.1.1

See "here":https://github.com/Xceptance/XLT/milestone/4?closed=1 for the complete list of improvements and fixes.
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.xceptance</groupId>
<artifactId>xlt</artifactId>
<version>5.1.1</version>
<version>5.1.2</version>
<packaging>jar</packaging>

<name>XLT</name>
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/com/xceptance/xlt/engine/metrics/Metrics.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.xceptance.xlt.api.engine.CustomData;
import com.xceptance.xlt.api.engine.Data;
import com.xceptance.xlt.api.engine.EventData;
import com.xceptance.xlt.api.engine.PageLoadTimingData;
import com.xceptance.xlt.api.engine.RequestData;
import com.xceptance.xlt.api.engine.Session;
import com.xceptance.xlt.api.engine.TransactionData;
Expand Down Expand Up @@ -166,6 +167,10 @@ else if (data instanceof TransactionData)
{
updateTransactionMetrics((TransactionData) data);
}
else if (data instanceof PageLoadTimingData)
{
updatePageLoadTimingMetrics((PageLoadTimingData) data);
}
else if (data instanceof CustomData)
{
updateCustomTimerMetrics((CustomData) data);
Expand Down Expand Up @@ -239,6 +244,23 @@ private void updateRequestMetrics(final RequestData requestData)
updateRateMetric(summaryMetricPrefix + "bytesReceived_1s", requestData.getBytesReceived(), ONE_SEC, reportingInterval);
}

private void updatePageLoadTimingMetrics(final PageLoadTimingData pageLoadTimingData)
{
// metrics per page load timing name
final String sanitizedName = sanitizeMetricNamePart(pageLoadTimingData.getName());
final String metricPrefix = sanitizedAgentId + ".pageLoadTimings." + sanitizedName + ".";

updateValueMetric(metricPrefix + "runtime", (int) pageLoadTimingData.getRunTime());
updateCounterMetric(metricPrefix + "errors", pageLoadTimingData.hasFailed() ? 1 : 0);

// summary metrics
final String summaryMetricPrefix = sanitizedAgentId + ".summary.pageLoadTimings.";

updateValueMetric(summaryMetricPrefix + "runtime", (int) pageLoadTimingData.getRunTime());
updateCounterMetric(summaryMetricPrefix + "count", 1);
updateCounterMetric(summaryMetricPrefix + "errors", pageLoadTimingData.hasFailed() ? 1 : 0);
}

private void updateCustomTimerMetrics(final CustomData customData)
{
// metrics per custom timer name
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/xceptance/xlt/gce/GceAdminUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class GceAdminUtils
FRIENDLY_REGION_NAMES.put("asia-northeast3", "Asia Pacific - Seoul ");
FRIENDLY_REGION_NAMES.put("asia-south1", "Asia Pacific - Mumbai ");
FRIENDLY_REGION_NAMES.put("asia-southeast1", "Asia Pacific - Singapore ");
FRIENDLY_REGION_NAMES.put("asia-southeast2", "Asia Pacific - Jakarta ");
FRIENDLY_REGION_NAMES.put("australia-southeast1", "Asia Pacific - Sydney ");
FRIENDLY_REGION_NAMES.put("europe-north1", "Europe - Finland ");
FRIENDLY_REGION_NAMES.put("europe-west1", "Europe - Belgium ");
Expand Down

0 comments on commit 4ae14c5

Please sign in to comment.