This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/skywalking-docker.git
commit d9b08ef65a82c7ecb8d757e0132569c8116aaa64 Author: Gao Hongtao <[email protected]> AuthorDate: Wed Jul 3 18:18:11 2019 +0800 Adding 6.2.0 --- 6/6.1/oap/README.md | 4 +- 6/6.1/ui/README.md | 35 ++++ 6/6.2/base/Dockerfile | 97 +++++++++++ 6/6.2/compose/docker-compose.yml | 59 +++++++ 6/6.2/oap/Dockerfile | 43 +++++ 6/{6.1 => 6.2}/oap/README.md | 19 ++- 6/6.2/oap/docker-entrypoint.sh | 346 +++++++++++++++++++++++++++++++++++++++ 6/6.2/oap/log4j2.xml | 35 ++++ 6/6.2/ui/Dockerfile | 45 +++++ 6/6.2/ui/README.md | 35 ++++ 6/6.2/ui/docker-entrypoint.sh | 26 +++ 6/6.2/ui/logback.xml | 21 +++ 12 files changed, 758 insertions(+), 7 deletions(-) diff --git a/6/6.1/oap/README.md b/6/6.1/oap/README.md index 83e71dc..1df96a0 100644 --- a/6/6.1/oap/README.md +++ b/6/6.1/oap/README.md @@ -32,9 +32,9 @@ Default value is `standalone`, avaliable values are: - `consul`, If set this value, all enviroment variables of `cluster.consul` in `application.yml` are avaliable. ## SW_STORAGE -Default value is `H2`, avaliable values are: +Default value is `h2`, avaliable values are: - - `H2`, If set this value, all enviroment variables of `storage.h2` in `application.yml` are avaliable. + - `h2`, If set this value, all enviroment variables of `storage.h2` in `application.yml` are avaliable. - `elasticsearch`, If set this value, all enviroment variables of `stroage.elasticsearch` in `application.yml` are avaliable. - `mysql`, If set this value, all enviroment variables of `stroage.mysql` in `application.yml` are avaliable. diff --git a/6/6.1/ui/README.md b/6/6.1/ui/README.md new file mode 100644 index 0000000..87a6aa1 --- /dev/null +++ b/6/6.1/ui/README.md @@ -0,0 +1,35 @@ +# Apache SkyWalking UI image + +**Docker images are not official ASF releases but provided for convenience. Recommended usage is always to build the source** + +<img src="http://skywalking.apache.org/assets/logo.svg" alt="Sky Walking logo" height="90px" align="right" /> + +**SkyWalking**: an APM(application performance monitor) system, especially designed for +microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. + +[](https://github.com/apache/incubator-skywalking) +[](https://twitter.com/AsfSkyWalking) + +You could find docker file at [here](https://github.com/apache/incubator-skywalking-docker) + +This image would start up SkyWalking UI only. + +[SkyWalking K8s deployment scripts](https://github.com/apache/incubator-skywalking-kubernetes) use this image by default. + +# How to use this image + +## Start a container to connect oap server whose address is `oap:12800` + +``` +$ docker run --name oap --restart always -d -e SW_OAP_ADDRESS=oap:12800 apache/skywalking-ui:6.1.0 +``` + +# Configuration + +We could set up environment variables to configure this image. + +## SW_OAP_ADDRESS +The address of OAP server. Default value is `127.0.0.1:12800`. + +## SW_TIMEOUT +Reading timeout. Default value is `20000`(millisecond). \ No newline at end of file diff --git a/6/6.2/base/Dockerfile b/6/6.2/base/Dockerfile new file mode 100644 index 0000000..35aa9eb --- /dev/null +++ b/6/6.2/base/Dockerfile @@ -0,0 +1,97 @@ +# 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. + +FROM openjdk:8-jre-alpine AS build + +LABEL maintainer="[email protected]" + +# Install required packages +RUN apk add --no-cache \ + bash \ + python \ + su-exec + + +ENV SKYWALKING_HOME=/skywalking +RUN mkdir -p "${SKYWALKING_HOME}" +WORKDIR $SKYWALKING_HOME + +ENV GPG_KEYS A968F6905E0ACB59E5B24C15D3D9CD50820184C2 B0801BC746F965029A1338072EF5026E70A55777 D360AB2AB20B28403270E2CBE8608938DB25E06B +ENV SKYWALKING_VERSION=6.2.0 +ENV SKYWALKING_SHA512 753cd9cfeca258cb31355be9c6f8d7e234a488b29b20d1f0e8b3c89c404bcf4fce49fa825c5cb674a42d56e8dc3947b9592b3c8d96c82df84b3926eb341481a6 + +ENV SKYWALKING_TGZ_URLS \ + https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz \ + # if the version is outdated, we might have to pull from the dist/archive :/ + https://www-us.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz \ + https://www.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz \ + https://archive.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz + +ENV SKYWALKING_ASC_URLS \ + https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz.asc \ + # if the version is outdated, we might have to pull from the dist/archive :/ + https://www-us.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz.asc \ + https://www.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz.asc \ + https://archive.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-$SKYWALKING_VERSION.tar.gz.asc + +RUN set -eux; \ + \ + apk add --no-cache --virtual .fetch-deps \ + gnupg \ + \ + ca-certificates \ + openssl \ + ; \ + \ + export GNUPGHOME="$(mktemp -d)"; \ + for key in $GPG_KEYS; do \ + gpg --batch --keyserver pgp.surfnet.nl --recv-keys "$key"; \ + done; \ + \ + success=; \ + for url in $SKYWALKING_TGZ_URLS; do \ + if wget -O skywalking.tar.gz "$url"; then \ + success=1; \ + break; \ + fi; \ + done; \ + [ -n "$success" ]; \ + \ + echo "$SKYWALKING_SHA512 *skywalking.tar.gz" | sha512sum -c -; \ + \ + success=; \ + for url in $SKYWALKING_ASC_URLS; do \ + if wget -O skywalking.tar.gz.asc "$url"; then \ + success=1; \ + break; \ + fi; \ + done; \ + [ -n "$success" ]; \ + \ + gpg --batch --verify skywalking.tar.gz.asc skywalking.tar.gz; \ + tar -xvf skywalking.tar.gz --strip-components=1; \ + rm -rf bin/; \ + rm skywalking.tar.gz*; \ + command -v gpgconf && gpgconf --kill all || :; \ + rm -rf "$GNUPGHOME"; \ + apk del .fetch-deps + +FROM openjdk:8-jre-alpine + +COPY --from=build /skywalking /skywalking + +RUN apk add --no-cache \ + bash \ No newline at end of file diff --git a/6/6.2/compose/docker-compose.yml b/6/6.2/compose/docker-compose.yml new file mode 100644 index 0000000..7c4964e --- /dev/null +++ b/6/6.2/compose/docker-compose.yml @@ -0,0 +1,59 @@ +# 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. + +version: '3.3' +services: + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:6.8.1 + container_name: elasticsearch + restart: always + ports: + - 9200:9200 + - 9300:9300 + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + ulimits: + memlock: + soft: -1 + hard: -1 + oap: + image: apache/skywalking-oap-server:6.1.0 + container_name: oap + depends_on: + - elasticsearch + links: + - elasticsearch + restart: always + ports: + - 11800:11800 + - 12800:12800 + environment: + SW_STORAGE: elasticsearch + SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 + ui: + image: apache/skywalking-ui:6.1.0 + container_name: ui + depends_on: + - oap + links: + - oap + restart: always + ports: + - 8080:8080 + environment: + SW_OAP_ADDRESS: oap:12800 diff --git a/6/6.2/oap/Dockerfile b/6/6.2/oap/Dockerfile new file mode 100644 index 0000000..f265acc --- /dev/null +++ b/6/6.2/oap/Dockerfile @@ -0,0 +1,43 @@ +# 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. + +FROM apache/skywalking-base:6.2.0 AS build + +WORKDIR skywalking + +RUN set -eux; \ + rm -rf "config/log4j2.xml"; \ + rm -rf "webapp"; rm -rf "agent"; + +COPY log4j2.xml config/ +COPY docker-entrypoint.sh . + +FROM openjdk:8-jre-alpine + +ENV JAVA_OPTS=" -Xms256M " + +LABEL maintainer="[email protected]" + +COPY --from=build /skywalking /skywalking + +WORKDIR skywalking + +RUN apk add --no-cache \ + bash + +EXPOSE 12800 11800 1234 + +ENTRYPOINT ["bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/6/6.1/oap/README.md b/6/6.2/oap/README.md similarity index 72% copy from 6/6.1/oap/README.md copy to 6/6.2/oap/README.md index 83e71dc..d41402c 100644 --- a/6/6.1/oap/README.md +++ b/6/6.2/oap/README.md @@ -10,18 +10,18 @@ microservices, cloud native and container-based (Docker, Kubernetes, Mesos) arch ## Start a `standlone` container with `H2` storage ``` -$ docker run --name oap --restart always -d apache/skywalking-oap-server:6.1.0 +$ docker run --name oap --restart always -d apache/skywalking-oap-server:6.2.0 ``` ## Start a `standlone` container with `elasticsearch` storage whose address is `elasticsearch:9200` ``` -$ docker run --name oap --restart always -d -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:6.1.0 +$ docker run --name oap --restart always -d -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:6.2.0 ``` # Configuration -We could set up environment variables to configure this image. Most of them are defined in [backend-setup](https://github.com/apache/skywalking/blob/v6.1.0/docs/en/setup/backend/backend-setup.md), but Apache SkyWalking Docker Image adds extra environment variables to help the user to compose it properly. The details are located in [docker-entrypoint.sh](docker-entrypoint.sh) +We could set up environment variables to configure this image. Most of them are defined in [backend-setup](https://github.com/apache/skywalking/blob/v6.2.0/docs/en/setup/backend/backend-setup.md), but Apache SkyWalking Docker Image adds extra environment variables to help the user to compose it properly. The details are located in [docker-entrypoint.sh](docker-entrypoint.sh) ## SW_CLUSTER Default value is `standalone`, avaliable values are: @@ -30,13 +30,22 @@ Default value is `standalone`, avaliable values are: - `zookeeper`, If set this value, all enviroment variables of `cluster.zookeeper` in `application.yml` are avaliable. - `kubernetes`, If set this value, all enviroment variables of `cluster.kubernetes` in `application.yml` are avaliable. - `consul`, If set this value, all enviroment variables of `cluster.consul` in `application.yml` are avaliable. + - `etcd`, If set this value, all enviroment variables of `cluster.etcd` in `application.yml` are avaliable. + - `nacos`, If set this value, all enviroment variables of `cluster.nacos` in `application.yml` are avaliable. ## SW_STORAGE -Default value is `H2`, avaliable values are: +Default value is `h2`, avaliable values are: - - `H2`, If set this value, all enviroment variables of `storage.h2` in `application.yml` are avaliable. + - `h2`, If set this value, all enviroment variables of `storage.h2` in `application.yml` are avaliable. - `elasticsearch`, If set this value, all enviroment variables of `stroage.elasticsearch` in `application.yml` are avaliable. - `mysql`, If set this value, all enviroment variables of `stroage.mysql` in `application.yml` are avaliable. + + ## SW_CONFIGURATION +Default value is `none`, avaliable values are: + + - `apollo`, If set this value, all enviroment variables of `configuration.apollo` in `application.yml` are avaliable. + - `nacos`, If set this value, all enviroment variables of `configuration.nacos` in `application.yml` are avaliable. + - `zookeeper`, If set this value, all enviroment variables of `configuration.zookeeper` in `application.yml` are avaliable. ## XXX_ENABLED diff --git a/6/6.2/oap/docker-entrypoint.sh b/6/6.2/oap/docker-entrypoint.sh new file mode 100644 index 0000000..5897b00 --- /dev/null +++ b/6/6.2/oap/docker-entrypoint.sh @@ -0,0 +1,346 @@ +# 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. + +#!/bin/bash + +set -e + +var_application_file="config/application.yml" + +generateClusterStandalone() { + echo "cluster:" >> ${var_application_file} + echo " standalone:" >> ${var_application_file} +} + +generateClusterZookeeper() { + cat <<EOT >> ${var_application_file} +cluster: + zookeeper: + nameSpace: \${SW_NAMESPACE:""} + hostPort: \${SW_CLUSTER_ZK_HOST_PORT:zookeeper:2181} + #Retry Policy + baseSleepTimeMs: \${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retries + maxRetries: \${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry +EOT +} + +generateClusterK8s() { + cat <<EOT >> ${var_application_file} +cluster: + kubernetes: + watchTimeoutSeconds: \${SW_CLUSTER_K8S_WATCH_TIMEOUT:60} + namespace: \${SW_CLUSTER_K8S_NAMESPACE:default} + labelSelector: \${SW_CLUSTER_K8S_LABEL:app=collector,release=skywalking} + uidEnvName: \${SW_CLUSTER_K8S_UID:SKYWALKING_COLLECTOR_UID} +EOT +} + +generateClusterConsul() { + cat <<EOT >> ${var_application_file} +cluster: + consul: + serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} + # Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500 + hostPort: \${SW_CLUSTER_CONSUL_HOST_PORT:consul:8500} +EOT +} + +generateClusterEtcd() { + cat <<EOT >> ${var_application_file} +cluster: + etcd: + serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} + # Etcd cluster nodes, example: 10.0.0.1:2379,10.0.0.2:2379,10.0.0.3:2379 + hostPort: \${SW_CLUSTER_ETCD_HOST_PORT:etcd:2379} +EOT +} + +generateClusterNacos() { + cat <<EOT >> ${var_application_file} +cluster: + nacos: + serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} + hostPort: \${SW_CLUSTER_NACOS_HOST_PORT:nacos:8848} +EOT +} + +generateStorageElastisearch() { + cat <<EOT >> ${var_application_file} +storage: + elasticsearch: + nameSpace: \${SW_NAMESPACE:""} + clusterNodes: \${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} + user: \${SW_ES_USER:""} + password: \${SW_ES_PASSWORD:""} + indexShardsNumber: \${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2} + indexReplicasNumber: \${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0} + # Those data TTL settings will override the same settings in core module. + recordDataTTL: \${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day + otherMetricsDataTTL: \${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day + monthMetricsDataTTL: \${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month + # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html + bulkActions: \${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests + bulkSize: \${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb + flushInterval: \${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests + concurrentRequests: \${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests + metadataQueryMaxSize: \${SW_STORAGE_ES_QUERY_MAX_SIZE:5000} + segmentQueryMaxSize: \${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200} +EOT +} + +generateStorageH2() { + cat <<EOT >> ${var_application_file} +storage: + h2: + driver: \${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource} + url: \${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db} + user: \${SW_STORAGE_H2_USER:sa} + metadataQueryMaxSize: \${SW_STORAGE_H2_QUERY_MAX_SIZE:5000} +EOT +} + +generateStorageMySQL() { + cat <<EOT >> ${var_application_file} +storage: + mysql: + metadataQueryMaxSize: \${SW_STORAGE_H2_QUERY_MAX_SIZE:5000} +EOT +} + +generateConfigurationNone() { + cat <<EOT >> ${var_application_file} +configuration: + none: +EOT +} + +generateConfigurationApollo() { + cat <<EOT >> ${var_application_file} +configuration: + apollo: + apolloMeta: \${SW_CONFIGURATION_APOLLO_META:http://apollo:8080} + apolloCluster: \${SW_CONFIGURATION_APOLLO_CLUSTER:default} + apolloEnv: \${SW_CONFIGURATION_APOLLO_ENV:""} + appId: \${SW_CONFIGURATION_APOLLO_APP_ID:skywalking} + period: \${SW_CONFIGURATION_APOLLO_PERIOD:5} +EOT +} + +generateConfigurationNacos() { + cat <<EOT >> ${var_application_file} +configuration: + nacos: + # Nacos Server Host + serverAddr: \${SW_CONFIGURATION_NACO_SERVER_ADDR:naco} + # Nacos Server Port + port: \${SW_CONFIGURATION_NACO_PORT:8848} + # Nacos Configuration Group + group: \${SW_CONFIGURATION_NACO_GROUP:skywalking} + # Unit seconds, sync period. Default fetch every 60 seconds. + period : \${SW_CONFIGURATION_NACO_PERIOD:5} + # the name of current cluster, set the name if you want to upstream system known. + clusterName: \${SW_CONFIGURATION_NACO_CLUSTER_NAME:default} +EOT +} + +generateConfigurationZookeeper() { + cat <<EOT >> ${var_application_file} +configuration: + zookeeper: + period: \${SW_CONFIGURATION_ZOOKEEPER_PERIOD:60} # Unit seconds, sync period. Default fetch every 60 seconds. + nameSpace: \${SW_CONFIGURATION_ZOOKEEPER_NAMESPACE:/default} + hostPort: \${SW_CONFIGURATION_ZOOKEEPER_HOST_PATH:localhost:2181} + #Retry Policy + baseSleepTimeMs: \${SW_CONFIGURATION_ZOOKEEPER_BASE_SLEEP_TIME_MS:1000} # initial amount of time to wait between retries + maxRetries: \${SW_CONFIGURATION_ZOOKEEPER_MAX_RETRIES:3}3 # max number of times to retry +EOT +} + +validateVariables() { + name=$1; value=$2; list=$3 + valid=false + for c in ${list} ; do + if [[ "$c" = "$value" ]]; then + valid=true + fi + done + + if ! ${valid}; then + echo "Error: $name=$value please specify $name = $list" + exit 1 + fi +} + +generateApplicationYaml() { + # validate + [[ -z "$SW_CLUSTER" ]] && [[ -z "$SW_STORAGE" ]] && [[ -z "$SW_CONFIGURATION" ]] \ + && { echo "Error: please specify \"SW_CLUSTER\" \"SW_STORAGE\" \"SW_CONFIGURATION\""; exit 1; } + + validateVariables "SW_CLUSTER" "$SW_CLUSTER" "standalone zookeeper kubernetes consul etcd nacos" + + validateVariables "SW_STORAGE" "$SW_STORAGE" "elasticsearch h2 mysql" + + validateVariables "SW_CONFIGURATION" "$SW_CONFIGURATION" "none apollo nacos zookeeper" + + echo "# Generated by 'docker-entrypoint.sh'" > ${var_application_file} + #generate cluster + case ${SW_CLUSTER} in + standalone) generateClusterStandalone;; + zookeeper) generateClusterZookeeper;; + kubernetes) generateClusterK8s;; + consul) generateClusterConsul;; + etcd) generateClusterEtcd;; + nacos) generateClusterNacos;; + esac + + #generate core + cat <<EOT >> ${var_application_file} +core: + default: + # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate + # Receiver: Receive agent data, Level 1 aggregate + # Aggregator: Level 2 aggregate + role: \${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator + restHost: \${SW_CORE_REST_HOST:0.0.0.0} + restPort: \${SW_CORE_REST_PORT:12800} + restContextPath: \${SW_CORE_REST_CONTEXT_PATH:/} + gRPCHost: \${SW_CORE_GRPC_HOST:0.0.0.0} + gRPCPort: \${SW_CORE_GRPC_PORT:11800} + downsampling: + - Hour + - Day + - Month + # Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted. + enableDataKeeperExecutor: \${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close. + recordDataTTL: \${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute + minuteMetricsDataTTL: \${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute + hourMetricsDataTTL: \${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour + dayMetricsDataTTL: \${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day + monthMetricsDataTTL: \${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month +EOT + + # generate storage + case ${SW_STORAGE} in + elasticsearch) generateStorageElastisearch;; + h2) generateStorageH2;; + mysql) generateStorageMySQL;; + esac + + cat <<EOT >> ${var_application_file} +receiver-sharing-server: + default: +receiver-register: + default: +receiver-trace: + default: + bufferPath: \${SW_RECEIVER_BUFFER_PATH:../trace-buffer/} # Path to trace buffer files, suggest to use absolute path + bufferOffsetMaxFileSize: \${SW_RECEIVER_BUFFER_OFFSET_MAX_FILE_SIZE:100} # Unit is MB + bufferDataMaxFileSize: \${SW_RECEIVER_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB + bufferFileCleanWhenRestart: \${SW_RECEIVER_BUFFER_FILE_CLEAN_WHEN_RESTART:false} + sampleRate: \${SW_TRACE_SAMPLE_RATE:10000} # The sample rate precision is 1/10000. 10000 means 100% sample in default. + slowDBAccessThreshold: \${SW_SLOW_DB_THRESHOLD:default:200,mongodb:100} # The slow database access thresholds. Unit ms. +receiver-jvm: + default: +receiver-clr: + default: +service-mesh: + default: + bufferPath: \${SW_SERVICE_MESH_BUFFER_PATH:../mesh-buffer/} # Path to trace buffer files, suggest to use absolute path + bufferOffsetMaxFileSize: \${SW_SERVICE_MESH_OFFSET_MAX_FILE_SIZE:100} # Unit is MB + bufferDataMaxFileSize: \${SW_SERVICE_MESH_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB + bufferFileCleanWhenRestart: \${SW_SERVICE_MESH_BUFFER_FILE_CLEAN_WHEN_RESTART:false} +istio-telemetry: + default: +query: + graphql: + path: \${SW_QUERY_GRAPHQL_PATH:/graphql} +alarm: + default: +telemetry: + prometheus: + host: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} + port: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} +EOT + # generate configuration + case ${SW_CONFIGURATION} in + none) generateConfigurationNone;; + apollo) generateConfigurationApollo;; + nacos) generateConfigurationNacos;; + zookeeper) generateConfigurationZookeeper;; + esac + + cat <<EOT >> ${var_application_file} +envoy-metric: + default: +EOT + if [[ "$SW_ENVOY_ALS_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} + alsHTTPAnalysis: \${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:k8s-mesh} +EOT + fi + + if [[ "$SW_RECEIVER_ZIPKIN_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +receiver_zipkin: + default: + host: \${SW_RECEIVER_ZIPKIN_HOST:0.0.0.0} + port: \${SW_RECEIVER_ZIPKIN_PORT:9411} + contextPath: \${SW_RECEIVER_ZIPKIN_CONTEXT_PATH:/} +EOT + fi + + if [[ "$SW_RECEIVER_JAEGER_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +receiver_jaeger: + default: + gRPCHost: \${SW_RECEIVER_JAEGER_HOST:0.0.0.0} + gRPCPort: \${SW_RECEIVER_JAEGER_PORT:14250} +EOT + fi + + if [[ "$SW_EXPORTER_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +exporter: + grpc: + targetHost: \${SW_EXPORTER_GRPC_HOST:127.0.0.1} + targetPort: \${SW_EXPORTER_GRPC_PORT:9870} +EOT + fi +} + +echo "[Entrypoint] Apache SkyWalking Docker Image" + +SW_CLUSTER=${SW_CLUSTER:-standalone} +SW_STORAGE=${SW_STORAGE:-h2} +SW_CONFIGURATION=${SW_CONFIGURATION:-none} + +if [[ -z "$SW_L0AD_CONFIG_FILE_FROM_VOLUME" ]] || [[ "$SW_L0AD_CONFIG_FILE_FROM_VOLUME" != "true" ]]; then + generateApplicationYaml + echo "Generated application.yml" + echo "-------------------------" + cat ${var_application_file} + echo "-------------------------" +fi + +CLASSPATH="config:$CLASSPATH" +for i in oap-libs/*.jar +do + CLASSPATH="$i:$CLASSPATH" +done + +set -ex +exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap \ + ${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@" diff --git a/6/6.2/oap/log4j2.xml b/6/6.2/oap/log4j2.xml new file mode 100644 index 0000000..b1f1818 --- /dev/null +++ b/6/6.2/oap/log4j2.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + ~ + --> + +<Configuration status="INFO"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/> + </Console> + </Appenders> + <Loggers> + <logger name="org.eclipse.jetty" level="INFO"/> + <logger name="org.apache.zookeeper" level="INFO"/> + <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/> + <logger name="io.grpc.netty" level="INFO"/> + <Root level="INFO"> + <AppenderRef ref="Console"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/6/6.2/ui/Dockerfile b/6/6.2/ui/Dockerfile new file mode 100644 index 0000000..aab7cb1 --- /dev/null +++ b/6/6.2/ui/Dockerfile @@ -0,0 +1,45 @@ +# 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. + +FROM apache/skywalking-base:6.2.0 AS build + +WORKDIR skywalking + +RUN set -eux; \ + rm -rf "config"; rm -rf "oap-libs"; \ + rm -rf "agent"; + +COPY docker-entrypoint.sh . +COPY logback.xml webapp/ + +FROM openjdk:8-jre-alpine + +ENV JAVA_OPTS=" -Xms256M " \ + SW_OAP_ADDRESS="oap:12800" \ + SW_TIMEOUT="20000" + +LABEL maintainer="[email protected]" + +COPY --from=build /skywalking /skywalking + +WORKDIR skywalking + +RUN apk add --no-cache \ + bash + +EXPOSE 8080 + +ENTRYPOINT ["bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/6/6.2/ui/README.md b/6/6.2/ui/README.md new file mode 100644 index 0000000..c11377f --- /dev/null +++ b/6/6.2/ui/README.md @@ -0,0 +1,35 @@ +# Apache SkyWalking UI image + +**Docker images are not official ASF releases but provided for convenience. Recommended usage is always to build the source** + +<img src="http://skywalking.apache.org/assets/logo.svg" alt="Sky Walking logo" height="90px" align="right" /> + +**SkyWalking**: an APM(application performance monitor) system, especially designed for +microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. + +[](https://github.com/apache/incubator-skywalking) +[](https://twitter.com/AsfSkyWalking) + +You could find docker file at [here](https://github.com/apache/incubator-skywalking-docker) + +This image would start up SkyWalking UI only. + +[SkyWalking K8s deployment scripts](https://github.com/apache/incubator-skywalking-kubernetes) use this image by default. + +# How to use this image + +## Start a container to connect oap server whose address is `oap:12800` + +``` +$ docker run --name oap --restart always -d -e SW_OAP_ADDRESS=oap:12800 apache/skywalking-ui:6.2.0 +``` + +# Configuration + +We could set up environment variables to configure this image. + +## SW_OAP_ADDRESS +The address of OAP server. Default value is `127.0.0.1:12800`. + +## SW_TIMEOUT +Reading timeout. Default value is `20000`(millisecond). \ No newline at end of file diff --git a/6/6.2/ui/docker-entrypoint.sh b/6/6.2/ui/docker-entrypoint.sh new file mode 100644 index 0000000..6771e22 --- /dev/null +++ b/6/6.2/ui/docker-entrypoint.sh @@ -0,0 +1,26 @@ +# 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. + +#!/bin/bash + +set -e + +export LOGGING_CONFIG="webapp/logback.xml" + +[[ ! -z "$SW_OAP_ADDRESS" ]] && export COLLECTOR_RIBBON_LISTOFSERVERS=${SW_OAP_ADDRESS} && echo "COLLECTOR_RIBBON_LISTOFSERVERS=$COLLECTOR_RIBBON_LISTOFSERVERS" +[[ ! -z "$SW_TIMEOUT" ]] && export COLLECTOR_RIBBON_READTIMEOUT=${SW_TIMEOUT} && echo "COLLECTOR_RIBBON_READTIMEOUT=$COLLECTOR_RIBBON_READTIMEOUT" + +exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -jar webapp/skywalking-webapp.jar "$@" diff --git a/6/6.2/ui/logback.xml b/6/6.2/ui/logback.xml new file mode 100644 index 0000000..834036d --- /dev/null +++ b/6/6.2/ui/logback.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + ~ + --> +<configuration> + <include resource="org/springframework/boot/logging/logback/base.xml" /> +</configuration> \ No newline at end of file
