APM, Application Performance Monitoring System
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
The dafult style mode is changed to the dark mode, and light mode is still available.
A new design for the log view is currently available. Easier to locate the logs, and more space for the raw text.
deleteById
API.management
,
including ui_template,ui_menu,continuous_profiling_policy
.200
to 202
.keepAliveProperty
API.AlarmRecord
alarmMessage column length to 512.EventHookCallback
build event: build the layer from Service's Layer
.AlarmCore
doAlarm: catch exception for each callback to avoid interruption.WebhookCallback
send incorrect messages, add catch exception for each callback HTTP Post.define(Property property, PropertyStore.Strategy strategy)
API.annotationQuery
parameter in the JDBC related storage.limit
doesn't work for findEndpoint
API in ES storage.metrics_aggregator_abandon
to count the number of abandon metrics.BanyanDB Metadata Query
: make query single instance/process return full tags to avoid NPE.Scratch The OAP Config Dump
.increase/rate
function in the MQE
query language._abandoned
when endpoints have high
cardinality.OpenTelemetry Metrics
doc.Concepts and Designs
.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
skywalking-log-recevier-plugin
is renamed to skywalking-log-receiver-plugin
.deleteProperty
API to the BanyanDBStorageClient.matchedCounter
from HttpUriRecognitionService#feedRawData
.HttpUriRecognitionService#feedRawData
and add max 10 candidates of raw URIs for each pattern.NPE
in metrics query when the metric is not exist.Terminating
OAP Pods in cluster.SW_CORE_SYNC_PERIOD_HTTP_URI_RECOGNITION_PATTERN
and SW_CORE_TRAINING_PERIOD_HTTP_URI_RECOGNITION_PATTERN
to control the period of training and sync HTTP URI recognition patterns. And shorten the default period to 10s for
sync and 60s for training.recevier
are renamed to receiver
.BanyanDBMetricsDAO
handles storeIDTag
in multiGet
for BanyanDBModelExtension
.mysql-connector-java
.docker/.env
to explain the usage.SW_OTEL_RECEIVER_ENABLED_OTEL_RULES
to right SW_OTEL_RECEIVER_ENABLED_OTEL_METRICS_RULES
.SW_QUERY_MAX_QUERY_COMPLEXITY
default value to 3000(was 1000).length=4000
parameter value of the event. It was 2000.Labeled Value Metrics
in MQE.labe
l to _
.0
s,
but in #10616, an empty array is returned.index out of bounds exception
in aggregate_labels
MQE function.alarm-settings.yml
. Support multiple configs for each hook types and specifying the hooks in the alarm rule.view_as_seq
function in MQE for listing metrics in the given prioritized sequence.k8sServiceNameRule
if it's not explicitly set.Compare Operation
in MQE.serviceRelation
in MAL by adding settings for the delimiter
and component
fields.expression
field and remove metrics-name/count/threshold/op/only-as-condition
fields and remove composite-rules
configuration.listInstances
not using endTime querybrowser_app_error_rate
in Browser-Root
dashboard.endpoint_cpm
for endpoint list in General-Service
dashboard.MYSQL
, POSTGRESQL
, REDIS
, ELASTICSEARCH
and DYNAMODB
layer UI-templates.storage extension
doc, as it is expired.how to add menu
doc, as SkyWalking supports marketplace and new backend-based setup.dynamic-config-configmap.md
.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
Duplicate class found
due to the delombok
goal.user error
in DynamoDB monitoring.no-init
mode./api/v1/labels
response missing service
label.IntList
.!=
.NPE
when query the not exist series indexes in ElasticSearch storage./api/v1/metadata
param limit
could cause out of bound./api/v1/series
response missing service
label when matching metric.exportErrorStatusTraceOnly
for export the error status trace segments through the Kafka channelSpan
is missing some fields.ai-pipeline
module.ai-pipeline
to do pattern recognition.sumLabeled
in MAL
.User
as the first node.User
node is absent, choose the busiest node(which has the most calls of all).showSymbol: true
, and make the data point shows on the Line graph.
Please clean ui_template
index in elasticsearch storage or table in JDBC storage.enabledOtelRules
is renamed to enabledOtelMetricsRules
and
the corresponding environment variable is renamed to SW_OTEL_RECEIVER_ENABLED_OTEL_METRICS_RULES
.General
and Virtual-Database
layer UI-templates.SUM_PER_MIN
to MAL documentation.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
pom.xml
s.ServerStatusService
in the core module to provide a new way to expose booting status to other modules. // When
// (1) the time bucket of the server's latest stability status is provided
// 1.1 the OAP has booted successfully
// 1.2 the current dimensionality is in minute.
// 1.3 the OAP cluster is rebalanced due to scaling
// (2) the metrics are from the time after the timeOfLatestStabilitySts
// (3) the metrics don't exist in the cache
// the kernel should NOT try to load it from the database.
//
// Notice, about condition (2),
// for the specific minute of booted successfully, the metrics are expected to load from database when
// it doesn't exist in the cache.
MetricsExtension
annotations declarations in manual entities.LastUpdateTimestamp
that caused the metrics session to expire.spring-sleuth.yaml
to spring-micrometer.yaml
.refresh_interval
of ElasticSearch indices from elasticsearch/flushInterval
config. Now,
it uses core/persistentPeriod
+ 5s as refresh_interval
for all indices instead.elasticsearch/flushInterval
to 5s(was 15s).flushInterval
of ElasticSearch BulkProcessor to avoid extra periodical flush in the continuous bulk streams.segmentIntervalDays
, blockIntervalHours
) in BanyanDB.measure-default
group in BanyanDB.StorageData#id
to the new StorageID object from a String type.ElasticSearch.Keyword
annotation to declare the target field type as keyword
.component_id
of service_relation_client_side
and service_relation_server_side
have been replaced by component_ids
.priority
definition in the component-libraries.yml
.component_id
from service_instance_relation_client_side
and service_instance_relation_server_side
.RemoteClientManager
and ServerStatusService
.groupBy
and in
operators to optimize topology query for BanyanDB storage plugin.MetricsPersistentWorker
to check the metrics whether required initialization.sumPerMinLabeld
or sumHistogramPercentile
MAL function.time_bucket
for both Stream and Measure kinds in BanyanDB plugin.TIME_BUCKET
of Metrics
and Record
into StorageData
.layer
in the listServices
query.time_bucket
of ServiceTraffic
not set correctly in slowSql
of MAL.id
tag from measures.Banyandb.MeasureField
to mark a column as a BanyanDB Measure field.BanyanDB.StoreIDTag
to store a process's id for searching.pod
and namespace
, which causes Pod log not to work for TCP workloads.batchOfBytes
configuration to limit the size of bulk flush.storage/elasticsearch/enableCustomRouting
.https://...
instead of /aws/firehose/metrics
), there must be a proxy(Nginx, Envoy, etc.).PrometheusMetricConverter#escapedName
also support converting /
to _
.@Column
annotation, swap Column#name
and ElasticSearch.Column#columnAlias
and rename ElasticSearch.Column#columnAlias
to ElasticSearch.Column#legacyName
.HttpAlarmCallback
.Scope
in the Entity of Metrics query v1 protocol is not required and automatical correction. The scope is determined based on the metric itself.ReadTimeout
for ConsulConfigurationWatcher to avoid IllegalArgumentException: Cache watchInterval=10sec >= networkClientReadTimeout=10000ms
.DurationUtils.getDurationPoints
exceed, when startTimeBucket
equals endTimeBucket
./zipkin
.Spring MicroMeter Observations Analysis
with the latest Java agent side
enhancement.monitoring MySQL document
to add the MariaDB
part.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
Dashboard | Pop-up Trace Query |
---|---|
swctl
version in OAP Docker image.DurationUtils.convertToTimeBucket
missed verify date format.retry wait
in no-init
mode.log_tag/segment_tag/zipkin_query
before OAP starts, if bump up from previous releases.avgHistogram
, avgHistogramPercentile
, avgLabeled
, sumHistogram
having data conflict when
downsampling.readLabeledMetricsValues
result forcedly in case the storage(database) doesn't return data consistent
with the parameter list.Get State and Start at Most Recent
semantic instead of Start at Exact
because we don't need the changing history events, see https://kubernetes.io/docs/reference/using-api/api-concepts/#semantics-for-watch.Duration
.(-infinity, explicit_bounds[i]] for i == 0
(explicit_bounds[i-1], explicit_bounds[i]] for 0 < i < size(explicit_bounds)
(explicit_bounds[i-1], +infinity) for i == size(explicit_bounds)
service version
and page path
, set default version as latest
and
default page path as /
(root). Fix the
error fetching data (/browser_app_page_pv0) : Can't split endpoint id into 2 parts
.key=value
, set the max length of column tags
in tableslog_tag/segment_tag/alarm_record_tag
and column query
in zipkin_query
and column tag_value
in tag_autocomplete
to 256.
SQL-Database requires altering these columns' length or removing these tables before OAP starts, if bump up from previous releases.interval
, 3 minutes), and the requests count is constant regardless of the cluster's changes. However with this change SkyWalking can't react to the cluster changes in time, but the delay is acceptable in our case.sumPerMinLabeled
in MAL
.Trace
and Log
through Kafka.service_id
to entity_id
for support difference entity.
Please re-create top_n_database_statement
index/table./otel-rules/k8s
.TCP{Service,ServiceInstance,ServiceRelation,ServiceInstanceRelation}
sources and split TCP-related entities out from
original Service,ServiceInstance,ServiceRelation,ServiceInstanceRelation
.oal/tcp.oal
file.sampledTrace
in LAL.MeasureIDs
queryBanyanDBProfileThreadSnapshotQueryDAO
queryEvent
conditions queryUITemplate
changesindex_only
CompletableFuture<Void>
directly from BanyanDB clientSW_STORAGE_ES_SPECIFIC_INDEX_SETTINGS
) and support specify the settings (number_of_shards/number_of_replicas)
for each index individually.(number_of_shards/number_of_replicas)
for the index template after rebooting.ClassCastException
in LoggingConfigWatcher
.JsonLogHandler
of kafka-fetcher-plugin
.lengthEnvVariable
for Column
as it never works as expected.LongText
to support longer logs persistent as a text type in ElasticSearch, instead of a keyword, to avoid length limitation.SW_CORE_ENABLE_ENDPOINT_NAME_GROUPING_BY_OPENAPI
. It was opaenapi.ShardingTopologyQueryDAO.loadServiceRelationsDetectedAtServerSide
invoke backend miss parameter serviceIds
.SW_SUPERDATASET_STORAGE_DAY_STEP
to SW_STORAGE_ES_SUPER_DATASET_DAY_STEP
to be consistent with other ES storage related variables._blank
) if absent to avoid NPE in the decoding. This caused Can't split xxx id into 2 parts
.core/default/enableDatabaseSession
config.@BanyanDB.TimestampColumn
to identify which column in Record
is providing the timestamp(milliseconds) for BanyanDB,
since BanyanDB stream requires a timestamp in milliseconds.
For SQL-Database: add new column timestamp
for tables profile_task_log/top_n_database_statement
,
requires altering this column or removing these tables before OAP starts, if bump up from previous releases.No-Sharding Mode
, add specific analyzer to the template before index creation to avoid update index error.BanyanDB.ShardingKey
annotation missed in the generated OAL metrics classes.sortMetrics
missing transform real index column name.BanyanDB.ShardingKey
to BanyanDB.SeriesID
.Metrics Persistent Cache Count
.GC Time
calculation.No-Sharding Mode
, column's property indexOnly
not applied and cannot be updated.trace_id
field as storage only(cannot be queried) in top_n_database_statement
, top_n_cache_read_command
, top_n_cache_read_command
index.SW_OAP_ADDRESS
to change the OAP backend service addresses, like SW_OAP_ADDRESS=localhost:12800,localhost:12801
, and use
environment
variable SW_SERVER_PORT
to change the port. Other Spring-related configurations don't take effect anymore.general-service/mesh-service/faas-function
top-list dashboard.responseCode
fields of all OAL sources, as well as examples to avoid user's confusion.readRecords
to metric types.metadata-uid
setup doc about Kubernetes coordinator in the cluster management.Agent Introduction
to Academy
.Scaling with Apache SkyWalking
in the academy list.Diagnose Service Mesh Network Performance with eBPF
in the academy list.Report Span Attached Events
data collecting protocol.Record
query protocolServer Agents
and Compatibility
for PHP agent.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
SW_STORAGE_ES_FLUSH_INTERVAL
) since 8.8.0 -
9.1.0 releases.VIRTUAL
detect type to Process for Network Profiling.LocalSpan
in the trace.forEach
, processRelation
function to MAL expression.expPrefix
, initExp
in MAL config.percentile
functions, p99
, p95
, p90
, p75
, p50
func(s)._mGet
and physical index name rather than alias in these
scenarios, (a) Metrics aggregation (b) Zipkin query (c) Metrics query (d) Log queryNETWORK
type of eBPF Profiling task.sumHistogram
in MAL
.ebpf_profiling_task
is required to be re-created when bump up from previous releases.SUM_PER_MIN
downsampling in MAL
.sumHistogramPercentile
in MAL
.VIRTUAL_CACHE
to Layer, to fix conjectured Redis server, which icon can't show on the topology.metrics-all
and records-all
on the default setting.
Provide system environment variable(SW_STORAGE_ES_LOGIC_SHARDING
) to shard metrics/meter indices into
multi-physical indices as the previous versions(one index template per metric/meter aggregation function).
In the current one index mode, users still could choose to adjust ElasticSearch's shard
number(SW_STORAGE_ES_INDEX_SHARDS_NUMBER
) to scale out.
More details please refer to New ElasticSearch storage option explanation in 9.2.0
and backend-storage doc
ebpf_profiling_schedule
added a new column ebpf_profiling_schedule_id
,
the H2/Mysql/Tidb/Postgres storage users are required to re-created it when bump up from previous releases.tls
and https
component IDs for Network Profiling.SW_STORAGE_ES_QUERY_MAX_SIZE
> 10000.otel-oc-rules
to otel-rules
.enabledOcRules
to enabledOtelRules
and
environment variable name from SW_OTEL_RECEIVER_ENABLED_OC_RULES
to SW_OTEL_RECEIVER_ENABLED_OTEL_RULES
.segment
,segment_tag
, logs
, logs_tag
, alarms
, alarms_tag
, zipkin_span
, zipkin_query
before OAP starts.@SQLDatabase.ExtraColumn4AdditionalEntity
to support add an extra column from parent to an additional table.event
menu.FaaS-Root
document link and topology service relation dashboard link.Mesh-Instance
metric Throughput
.Mesh-Service-Relation
metric Throughput
and Proxy Sidecar Internal Latency in Nanoseconds (Client Response)
.Mesh-Instance-Relation
metric Throughput
.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
Apache ShenYu (incubating)
.Layer
for V9 and wrong time bucket for generate Service and
Endpoint.ebpf_profiling_task
, process_traffic
.GC Time
calculation.SW_QUERY_MAX_QUERY_COMPLEXITY
default value to 1000
**_JETTY_**
to **_REST_**
.opentelemetry-collector
.Layer
concept from ServiceInstance
.onCompleted
on gRPC onError
callback.Layer
concept form Process
.MQ
has the wrong Layer
type.@SQLDatabase.AdditionalEntity
to support create additional tables from a model.maxSizeOfArrayColumn
and numOfSearchableValuesPerTag
.Tags list
from Segment
,Logs
,Alarms
to their additional table.total
field in Trace, Log, Event, Browser log, and alarm list query.OFF_CPU
eBPF Profiling.rpc.status_code
and http.status_code
. status_code
had been removed.profileDataQueryBatchSize
config in Elasticsearch Storage.Thread Pool
from JVM to Overview, fix JVM GC Count
calculation.Layer
filed from the Instance and Process.0
.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
-Dlog4j2.formatMsgNoLookups=true
or setting
the LOG4J_FORMAT_MSG_NO_LOOKUPS=”true”
environment variable also avoids CVEs../mvnw compile
not work if ./mvnw install
is not executed at least once.JD_PRESERVE_LINE_FEEDS=true
in official code style file.Can't split endpoint id into 2 parts
bug for endpoint ID. In the TCP in service mesh observability, endpoint
name doesn't exist in TCP traffic.ValueColumnMetadata
.Layer
and removed NodeType
. More details refer
to v9-version-upgrade.GCPhrase -> GCPhase
.FAAS
to SpanLayer.normal
to V9 service meta query.scope=ALL
catalog for metrics.normal
field to Service.SelfRemoteClient
self observing metrics.SW_CLUSTER_INTERNAL_COM_HOST
and SW_CLUSTER_INTERNAL_COM_PORT
for cluster selectors zookeeper
,consul
,etcd
and nacos
.configuration-vocabulary
,backend-cluster
about env variables SW_CLUSTER_INTERNAL_COM_HOST
and SW_CLUSTER_INTERNAL_COM_PORT
.responseTimeout
of ES client.alarm_record.tags_raw_data
of binary type in ElasticSearch storage.gzip
.possibility
) in LAL.receiver_zipkin
to receiver-zipkin
, remove receiver_jaeger
from application.yaml
.metadataQueryBatchSize
to configure scrolling page size.metadataQueryMaxSize
from 5000
to 10000
BasicToken.of
with AuthToken.ofBasic
.Health check fails. reason: No healthy endpoint
.event
generated metrics to SERVICE_CATALOG_NAME catalog.All
from OAL source.SRC_ALL: 'All'
from OAL grammar tree.all_heatmap
and all_percentile
metrics.receiver-otel#enabledOcRules
receiver with k8s-node,oap,vm
rules on default.satellite,spring-sleuth
for agent-analyzer#meterAnalyzerActiveFiles
on default.receiver-zabbix
receiver with agent
rule on default.restAcceptorPriorityDelta
(env var: SW_RECEIVER_SHARING_JETTY_DELTA
, SW_CORE_REST_JETTY_DELTA
).graphql/path
(env var: SW_QUERY_GRAPHQL_PATH
).indexOnly
, support ElasticSearch only index and not store some fields.indexOnly=true
to SegmentRecord.tags
, AlarmRecord.tags
, AbstractLogRecord.tags
, to reduce unnecessary
storage.restMinThreads
(env var: SW_CORE_REST_JETTY_MIN_THREADS
, SW_RECEIVER_SHARING_JETTY_MIN_THREADS
).Column.shardingKeyIdx
for column definition for BanyanDB.Sharding key is used to group time series data per metric of one entity in one place (same sharding and/or same
row for column-oriented database).
For example,
ServiceA's traffic gauge, service call per minute, includes following timestamp values, then it should be sharded by service ID
[ServiceA(encoded ID): 01-28 18:30 values-1, 01-28 18:31 values-2, 01-28 18:32 values-3, 01-28 18:32 values-4]
BanyanDB is the 1st storage implementation supporting this. It would make continuous time series metrics stored closely and compressed better.
NOTICE, this sharding concept is NOT just for splitting data into different database instances or physical files.
properties parameters
and _source
update.isNotNormal
service requirement when use alias to merge service topology from client side. All RPCs' peer
services from client side are always normal services. This cause the topology is not merged correctly.EventType.TOTAL
always.Aggregation
and GC Count
metrics for oap self observabilitymultiGet
could query without tag value in the InfluxDB
storage plugin.DatabaseSlowStatement
.Error Prone Annotations
dependency to suppress warnings, which are not errors.SW_ENABLE_UPDATE_UI_TEMPLATE
to control user edit UI template.All
source relative document and examples.k8s-monitoring
, backend-telemetry
and v9-version-upgrade
doc for v9.All issues and pull requests are here
https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
-Dlog4j2.formatMsgNoLookups=true
also avoids CVE if your JRE opened JNDI in default.https://skywalking.apache.org/downloads/
Don't download source codes from this page. Please follow build document, if you want to build source codes by yourself.
Jackson
.Apache-Kylin
.get
generation mechanism of OAL engine, support map type of source's field.tag
(Map) into All, Service, ServiceInstance and Endpoint sources.funcParamExpression
and literalExpression
can't be used in the same aggregation function.(str->long)
and (long)
for string to long cast statement.(str->int)
and (int)
for string to int cast statement.string
as parameter of aggregation function.attributeExpression
and attributeExpressionSegment
in the OAL grammar tree to support map
type for the
attribute expression.hashCode
and remoteHashCode
methods for numeric fields.!= null
in OAL engine.Message Queue Consuming Count
metric for MQ consuming service and endpoint.Message Queue Avg Consuming Latency
metric for MQ consuming service and endpoint.-Inf
as bucket in the meter system.Event
s.getProfileTaskLogs
to profile query protocol.SW_KAFKA_FETCHER_ENABLE_NATIVE_PROTO_LOG
, SW_KAFKA_FETCHER_ENABLE_NATIVE_JSON_LOG
default true
.service_traffic
.storage2Entity
for previous versions.queryMetricsValues
and readLabeledMetricsValues
doesn't fill default values
when no available data in the ElasticSearch server.max
function in OAL doesn't support negative long.MicroBench
module to make it easier for developers to write JMH test.SO11Y
metric envoy_als_in_count
to calculate the ALS message count.1.10.3
, 1.11.4
, 1.12.0
release.(Tested through e2e)increase
-related calculation.SampleFamily
.MeterReportService
collectBatch
method.logback
dependencies in IoTDB plugin.StorageModuleElasticsearchProvider
doesn't watch on trustStorePath
.All issues and pull requests are here