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 4657118db9f97d40a13e7890d6f1838e8b8b0452 Author: Gao Hongtao <[email protected]> AuthorDate: Mon Jan 6 08:43:49 2020 +0000 Add 6.6.0 --- 6/6.6/base-es7/Dockerfile | 97 ++++++++ 6/6.6/base/Dockerfile | 97 ++++++++ 6/6.6/compose-es7/docker-compose.yml | 58 +++++ 6/6.6/compose/docker-compose.yml | 59 +++++ 6/6.6/oap-es7/Dockerfile | 43 ++++ 6/6.6/oap-es7/README.md | 77 +++++++ 6/6.6/oap-es7/docker-entrypoint.sh | 431 +++++++++++++++++++++++++++++++++++ 6/6.6/oap-es7/log4j2.xml | 31 +++ 6/6.6/oap/Dockerfile | 43 ++++ 6/6.6/oap/README.md | 77 +++++++ 6/6.6/oap/docker-entrypoint.sh | 431 +++++++++++++++++++++++++++++++++++ 6/6.6/oap/log4j2.xml | 31 +++ 6/6.6/ui/Dockerfile | 45 ++++ 6/6.6/ui/README.md | 38 +++ 6/6.6/ui/docker-entrypoint.sh | 26 +++ 6/6.6/ui/logback.xml | 21 ++ 16 files changed, 1605 insertions(+) diff --git a/6/6.6/base-es7/Dockerfile b/6/6.6/base-es7/Dockerfile new file mode 100644 index 0000000..3cc249a --- /dev/null +++ b/6/6.6/base-es7/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.6.0 +ENV SKYWALKING_SHA512 3a9f8c3645b4e7e60e84eaf4a95126c9abafe88ec9262c3d102c8ade20888d96d56fe6781628d3f3e7f4f09f45d9e8134f2964cf82bfdbd79ea48c5af3650e95 + +ENV SKYWALKING_TGZ_URLS \ + https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$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-es7-$SKYWALKING_VERSION.tar.gz \ + https://www.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$SKYWALKING_VERSION.tar.gz \ + https://archive.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$SKYWALKING_VERSION.tar.gz + +ENV SKYWALKING_ASC_URLS \ + https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$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-es7-$SKYWALKING_VERSION.tar.gz.asc \ + https://www.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$SKYWALKING_VERSION.tar.gz.asc \ + https://archive.apache.org/dist/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-es7-$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 ha.pool.sks-keyservers.net --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.6/base/Dockerfile b/6/6.6/base/Dockerfile new file mode 100644 index 0000000..fb41e1b --- /dev/null +++ b/6/6.6/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.6.0 +ENV SKYWALKING_SHA512 664212216804bf01257dd64a948a26bc7ba530157c8170edfb019fb539401d6ab576dfce91c7e869267cc5a0ac31be561b736ad2b806166d7f0125d2b4134348 + +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 ha.pool.sks-keyservers.net --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.6/compose-es7/docker-compose.yml b/6/6.6/compose-es7/docker-compose.yml new file mode 100644 index 0000000..577574d --- /dev/null +++ b/6/6.6/compose-es7/docker-compose.yml @@ -0,0 +1,58 @@ +# 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:7.5.0 + container_name: elasticsearch + restart: always + ports: + - 9200:9200 + 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.6.0-es7 + 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.6.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.6/compose/docker-compose.yml b/6/6.6/compose/docker-compose.yml new file mode 100644 index 0000000..b3dfa44 --- /dev/null +++ b/6/6.6/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.6.0-es6 + 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.6.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.6/oap-es7/Dockerfile b/6/6.6/oap-es7/Dockerfile new file mode 100644 index 0000000..2bae97d --- /dev/null +++ b/6/6.6/oap-es7/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.6.0-es7 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.6/oap-es7/README.md b/6/6.6/oap-es7/README.md new file mode 100644 index 0000000..c6542db --- /dev/null +++ b/6/6.6/oap-es7/README.md @@ -0,0 +1,77 @@ +# Apache SkyWalking OAP Server Docker Files + +<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. + +# Notice + +This image can only connect to Elasticsearch **7** when setting `SW_STORAGE`=`elasticsearch`. + +# How to use this image + +## Start a `standlone` container with `H2` storage + +``` +$ docker run --name oap --restart always -d apache/skywalking-oap-server:6.6.0-es7 +``` + +## 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.6.0-es7 +``` + +# 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.6.0-es7/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_ENVOY_ALS_ENABLED +No default value, set it to `true` to open ALS solution of SkyWalking. + +## SW_CLUSTER +Default value is `standalone`, avaliable values are: + + - `standlone`, If set this value, all enviroment variables of `cluster.standlone` in `application.yml` are avaliable. + - `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: + + - `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. + +## SW_TELEMETRY +Default value is `none`, avaliable values are: + + - `none`, If set this value, all enviroment variables of `telemetry.none` in `application.yml` are avaliable. + - `prometheus`, If set this value, all enviroment variables of `configuration.prometheus` in `application.yml` are avaliable. + - `so11y`, If set this value, all enviroment variables of `configuration.so11y` in `application.yml` are avaliable. + +## XXX_ENABLED + +There are also some other configuration switchers to extend default configuration, they also have a suffix `_ENABLED`. + + - `SW_RECEIVER_ZIPKIN_ENABLED` turns on/off zipkin receiver + - `SW_RECEIVER_JAEGER_ENABLED` turns on/off jaeger receiver + - `SW_EXPORTER_ENABLED` turns on/off exporter + +## SW_L0AD_CONFIG_FILE_FROM_VOLUME + +If you want to adopt a dedicated application.yaml instead of the one generated by docker-entrypoint.sh. This should be set to `true`. + +# License +[Apache 2.0 License.](/LICENSE) diff --git a/6/6.6/oap-es7/docker-entrypoint.sh b/6/6.6/oap-es7/docker-entrypoint.sh new file mode 100644 index 0000000..e301aaa --- /dev/null +++ b/6/6.6/oap-es7/docker-entrypoint.sh @@ -0,0 +1,431 @@ +# 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 + # Enable ACL + enableACL: \${SW_ZK_ENABLE_ACL:false} # disable ACL in default + schema: \${SW_ZK_SCHEMA:digest} # only support digest schema + expression: \${SW_ZK_EXPRESSION:skywalking:skywalking} +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} + namespace: \${SW_CLUSTER_NACOS_NAMESPACE:nacos:"public"} +EOT +} + +generateStorageElastisearch() { +if [[ "$SW_RECEIVER_ZIPKIN_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +storage: + zipkin-elasticsearch: +EOT +elif [[ "$SW_RECEIVER_JAEGER_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +storage: + jaeger-elasticsearch: +EOT +else + cat <<EOT >> ${var_application_file} +storage: + elasticsearch7: +EOT +fi +cat <<EOT >> ${var_application_file} + nameSpace: \${SW_NAMESPACE:""} + clusterNodes: \${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} + protocol: \${SW_STORAGE_ES_HTTP_PROTOCOL:"http"} + 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 + resultWindowMaxSize: \${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000} + metadataQueryMaxSize: \${SW_STORAGE_ES_QUERY_MAX_SIZE:5000} + segmentQueryMaxSize: \${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200} + advanced: \${SW_STORAGE_ES_ADVANCED:""} +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: + properties: + jdbcUrl: \${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"} + dataSource.user: \${SW_DATA_SOURCE_USER:root} + dataSource.password: \${SW_DATA_SOURCE_PASSWORD:root@1234} + dataSource.cachePrepStmts: \${SW_DATA_SOURCE_CACHE_PREP_STMTS:true} + dataSource.prepStmtCacheSize: \${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250} + dataSource.prepStmtCacheSqlLimit: \${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048} + dataSource.useServerPrepStmts: \${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true} + metadataQueryMaxSize: \${SW_STORAGE_MYSQL_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 +} + +generateTelemetryNone() { + cat <<EOT >> ${var_application_file} +telemetry: + none: +EOT +} + +generateTelemetryPrometheus() { + cat <<EOT >> ${var_application_file} +telemetry: + prometheus: + host: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} + port: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} +EOT +} + +generateTelemetrySo11y() { + cat <<EOT >> ${var_application_file} +telemetry: + so11y: + prometheusExporterEnabled: \${SW_TELEMETRY_SO11Y_PROMETHEUS_ENABLED:true} + prometheusExporterHost: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} + prometheusExporterPort: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} +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" ]] \ + && [[ -z "$SW_TELEMETRY" ]] \ + && { echo "Error: please specify \"SW_CLUSTER\" \"SW_STORAGE\" \"SW_CONFIGURATION\" \"SW_TELEMETRY\""; 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" + + validateVariables "SW_TELEMETRY" "$SW_TELEMETRY" "none prometheus so11y" + + 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. + dataKeeperExecutePeriod: \${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute + 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 + # Cache metric data for 1 minute to reduce database queries, and if the OAP cluster changes within that minute, + # the metrics may not be accurate within that minute. + enableDatabaseSession: \${SW_CORE_ENABLE_DATABASE_SESSION:true} +EOT + + # generate storage + case ${SW_STORAGE} in + elasticsearch) generateStorageElastisearch;; + h2) generateStorageH2;; + mysql) generateStorageMySQL;; + esac + + cat <<EOT >> ${var_application_file} +receiver-sharing-server: + default: + restHost: \${SW_RECEIVER_SHARING_REST_HOST:0.0.0.O} + restPort: \${SW_RECEIVER_SHARING_REST_PORT:0} + restContextPath: \${SW_RECEIVER_SHARING_REST_CONTEXT_PATH:/} + gRPCHost: \${SW_RECEIVER_SHARING_GRPC_HOST:0.0.0.O} + gRPCPort: \${SW_RECEIVER_SHARING_GRPC_PORT:0} + maxConcurrentCallsPerConnection: \${SW_RECEIVER_SHARING_MAX_CONCURRENT_CALL:0} + maxMessageSize: \${SW_RECEIVER_SHARING_MAX_MESSAGE_SIZE:0} + gRPCThreadPoolSize: \${SW_RECEIVER_SHARING_GRPC_THREAD_POOL_SIZE:0} + gRPCThreadPoolQueueSize: \${SW_RECEIVER_SHARING_GRPC_THREAD_POOL_QUEUE_SIZE:0} +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: +receiver-so11y: + 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: +EOT + # generate telemetry + case ${SW_TELEMETRY} in + none) generateTelemetryNone;; + prometheus) generateTelemetryPrometheus;; + so11y) generateTelemetrySo11y;; + esac + + # 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_TELEMETRY" = "so11y" ]]; then + cat <<EOT >> ${var_application_file} +receiver-so11y: + default: +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} +SW_TELEMETRY=${SW_TELEMETRY:-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.6/oap-es7/log4j2.xml b/6/6.6/oap-es7/log4j2.xml new file mode 100644 index 0000000..89c8112 --- /dev/null +++ b/6/6.6/oap-es7/log4j2.xml @@ -0,0 +1,31 @@ +<?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> + <Root level="INFO"> + <AppenderRef ref="Console"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/6/6.6/oap/Dockerfile b/6/6.6/oap/Dockerfile new file mode 100644 index 0000000..c963749 --- /dev/null +++ b/6/6.6/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.6.0-es6 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.6/oap/README.md b/6/6.6/oap/README.md new file mode 100644 index 0000000..cf48f10 --- /dev/null +++ b/6/6.6/oap/README.md @@ -0,0 +1,77 @@ +# Apache SkyWalking OAP Server Docker Files + +<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. + +# Notice + +This image can only connect to Elasticsearch **6** when setting `SW_STORAGE`=`elasticsearch`. + +# How to use this image + +## Start a `standlone` container with `H2` storage + +``` +$ docker run --name oap --restart always -d apache/skywalking-oap-server:6.6.0-es6 +``` + +## 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.6.0-es6 +``` + +# 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.6.0-es6/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_ENVOY_ALS_ENABLED +No default value, set it to `true` to open ALS solution of SkyWalking. + +## SW_CLUSTER +Default value is `standalone`, avaliable values are: + + - `standlone`, If set this value, all enviroment variables of `cluster.standlone` in `application.yml` are avaliable. + - `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: + + - `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. + +## SW_TELEMETRY +Default value is `none`, avaliable values are: + + - `none`, If set this value, all enviroment variables of `telemetry.none` in `application.yml` are avaliable. + - `prometheus`, If set this value, all enviroment variables of `configuration.prometheus` in `application.yml` are avaliable. + - `so11y`, If set this value, all enviroment variables of `configuration.so11y` in `application.yml` are avaliable. + +## XXX_ENABLED + +There are also some other configuration switchers to extend default configuration, they also have a suffix `_ENABLED`. + + - `SW_RECEIVER_ZIPKIN_ENABLED` turns on/off zipkin receiver + - `SW_RECEIVER_JAEGER_ENABLED` turns on/off jaeger receiver + - `SW_EXPORTER_ENABLED` turns on/off exporter + +## SW_L0AD_CONFIG_FILE_FROM_VOLUME + +If you want to adopt a dedicated application.yaml instead of the one generated by docker-entrypoint.sh. This should be set to `true`. + +# License +[Apache 2.0 License.](/LICENSE) diff --git a/6/6.6/oap/docker-entrypoint.sh b/6/6.6/oap/docker-entrypoint.sh new file mode 100644 index 0000000..4747426 --- /dev/null +++ b/6/6.6/oap/docker-entrypoint.sh @@ -0,0 +1,431 @@ +# 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 + # Enable ACL + enableACL: \${SW_ZK_ENABLE_ACL:false} # disable ACL in default + schema: \${SW_ZK_SCHEMA:digest} # only support digest schema + expression: \${SW_ZK_EXPRESSION:skywalking:skywalking} +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} + namespace: \${SW_CLUSTER_NACOS_NAMESPACE:nacos:"public"} +EOT +} + +generateStorageElastisearch() { +if [[ "$SW_RECEIVER_ZIPKIN_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +storage: + zipkin-elasticsearch: +EOT +elif [[ "$SW_RECEIVER_JAEGER_ENABLED" = "true" ]]; then + cat <<EOT >> ${var_application_file} +storage: + jaeger-elasticsearch: +EOT +else + cat <<EOT >> ${var_application_file} +storage: + elasticsearch: +EOT +fi +cat <<EOT >> ${var_application_file} + nameSpace: \${SW_NAMESPACE:""} + clusterNodes: \${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} + protocol: \${SW_STORAGE_ES_HTTP_PROTOCOL:"http"} + 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 + resultWindowMaxSize: \${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000} + metadataQueryMaxSize: \${SW_STORAGE_ES_QUERY_MAX_SIZE:5000} + segmentQueryMaxSize: \${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200} + advanced: \${SW_STORAGE_ES_ADVANCED:""} +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: + properties: + jdbcUrl: \${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"} + dataSource.user: \${SW_DATA_SOURCE_USER:root} + dataSource.password: \${SW_DATA_SOURCE_PASSWORD:root@1234} + dataSource.cachePrepStmts: \${SW_DATA_SOURCE_CACHE_PREP_STMTS:true} + dataSource.prepStmtCacheSize: \${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250} + dataSource.prepStmtCacheSqlLimit: \${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048} + dataSource.useServerPrepStmts: \${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true} + metadataQueryMaxSize: \${SW_STORAGE_MYSQL_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 +} + +generateTelemetryNone() { + cat <<EOT >> ${var_application_file} +telemetry: + none: +EOT +} + +generateTelemetryPrometheus() { + cat <<EOT >> ${var_application_file} +telemetry: + prometheus: + host: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} + port: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} +EOT +} + +generateTelemetrySo11y() { + cat <<EOT >> ${var_application_file} +telemetry: + so11y: + prometheusExporterEnabled: \${SW_TELEMETRY_SO11Y_PROMETHEUS_ENABLED:true} + prometheusExporterHost: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} + prometheusExporterPort: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} +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" ]] \ + && [[ -z "$SW_TELEMETRY" ]] \ + && { echo "Error: please specify \"SW_CLUSTER\" \"SW_STORAGE\" \"SW_CONFIGURATION\" \"SW_TELEMETRY\""; 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" + + validateVariables "SW_TELEMETRY" "$SW_TELEMETRY" "none prometheus so11y" + + 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. + dataKeeperExecutePeriod: \${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute + 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 + # Cache metric data for 1 minute to reduce database queries, and if the OAP cluster changes within that minute, + # the metrics may not be accurate within that minute. + enableDatabaseSession: \${SW_CORE_ENABLE_DATABASE_SESSION:true} +EOT + + # generate storage + case ${SW_STORAGE} in + elasticsearch) generateStorageElastisearch;; + h2) generateStorageH2;; + mysql) generateStorageMySQL;; + esac + + cat <<EOT >> ${var_application_file} +receiver-sharing-server: + default: + restHost: \${SW_RECEIVER_SHARING_REST_HOST:0.0.0.O} + restPort: \${SW_RECEIVER_SHARING_REST_PORT:0} + restContextPath: \${SW_RECEIVER_SHARING_REST_CONTEXT_PATH:/} + gRPCHost: \${SW_RECEIVER_SHARING_GRPC_HOST:0.0.0.O} + gRPCPort: \${SW_RECEIVER_SHARING_GRPC_PORT:0} + maxConcurrentCallsPerConnection: \${SW_RECEIVER_SHARING_MAX_CONCURRENT_CALL:0} + maxMessageSize: \${SW_RECEIVER_SHARING_MAX_MESSAGE_SIZE:0} + gRPCThreadPoolSize: \${SW_RECEIVER_SHARING_GRPC_THREAD_POOL_SIZE:0} + gRPCThreadPoolQueueSize: \${SW_RECEIVER_SHARING_GRPC_THREAD_POOL_QUEUE_SIZE:0} +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: +receiver-so11y: + 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: +EOT + # generate telemetry + case ${SW_TELEMETRY} in + none) generateTelemetryNone;; + prometheus) generateTelemetryPrometheus;; + so11y) generateTelemetrySo11y;; + esac + + # 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_TELEMETRY" = "so11y" ]]; then + cat <<EOT >> ${var_application_file} +receiver-so11y: + default: +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} +SW_TELEMETRY=${SW_TELEMETRY:-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.6/oap/log4j2.xml b/6/6.6/oap/log4j2.xml new file mode 100644 index 0000000..89c8112 --- /dev/null +++ b/6/6.6/oap/log4j2.xml @@ -0,0 +1,31 @@ +<?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> + <Root level="INFO"> + <AppenderRef ref="Console"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/6/6.6/ui/Dockerfile b/6/6.6/ui/Dockerfile new file mode 100644 index 0000000..22d27d6 --- /dev/null +++ b/6/6.6/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.6.0-es6 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.6/ui/README.md b/6/6.6/ui/README.md new file mode 100644 index 0000000..17580fe --- /dev/null +++ b/6/6.6/ui/README.md @@ -0,0 +1,38 @@ +# Apache SkyWalking UI docker file + +**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.5.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). + +# License +[Apache 2.0 License.](/LICENSE) \ No newline at end of file diff --git a/6/6.6/ui/docker-entrypoint.sh b/6/6.6/ui/docker-entrypoint.sh new file mode 100644 index 0000000..6771e22 --- /dev/null +++ b/6/6.6/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.6/ui/logback.xml b/6/6.6/ui/logback.xml new file mode 100644 index 0000000..834036d --- /dev/null +++ b/6/6.6/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
