You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by yi...@apache.org on 2023/02/14 00:20:11 UTC

[skywalking-python] branch master updated: Fix configuration names (#282)

This is an automated email from the ASF dual-hosted git repository.

yihaochen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-python.git


The following commit(s) were added to refs/heads/master by this push:
     new 6aa24fb  Fix configuration names (#282)
6aa24fb is described below

commit 6aa24fb7d8e9367f70442ae12af48366db15f274
Author: SheltonZSL <11...@users.noreply.github.com>
AuthorDate: Mon Feb 13 19:20:05 2023 -0500

    Fix configuration names (#282)
    
    * Refactor configs
    
    * fix httpx
    
    ---------
    
    Co-authored-by: kezhenxu94 <ke...@apache.org>
---
 CHANGELOG.md                                       |   4 +-
 Makefile                                           |   1 +
 docs/en/setup/Configuration.md                     |  96 +++++------
 docs/en/setup/Intrusive.md                         |  16 +-
 docs/en/setup/advanced/LogReporter.md              |   2 +-
 docs/en/setup/faq/How-to-disable-plugin.md         |   3 +-
 docs/en/setup/faq/How-to-use-with-uwsgi.md         |   2 +-
 poetry.lock                                        | 178 ++++++++++++++++++++-
 pyproject.toml                                     |   1 +
 skywalking/agent/__init__.py                       |  25 ++-
 skywalking/agent/protocol/grpc.py                  |  22 +--
 skywalking/agent/protocol/http.py                  |   4 +-
 skywalking/agent/protocol/kafka.py                 |  10 +-
 skywalking/bootstrap/loader/sitecustomize.py       |   2 +-
 skywalking/client/__init__.py                      |   6 +-
 skywalking/client/grpc.py                          |  20 +--
 skywalking/client/http.py                          |  30 ++--
 skywalking/client/kafka.py                         |  16 +-
 skywalking/config.py                               | 145 +++++++++--------
 skywalking/log/sw_logging.py                       |  16 +-
 skywalking/loggings.py                             |   2 +-
 skywalking/meter/meter.py                          |   3 +-
 skywalking/meter/meter_service.py                  |   7 +-
 skywalking/plugins/__init__.py                     |   2 +-
 skywalking/plugins/sw_asyncpg.py                   |   8 +-
 skywalking/plugins/sw_bottle.py                    |   4 +-
 skywalking/plugins/sw_celery.py                    |   8 +-
 skywalking/plugins/sw_django.py                    |   4 +-
 skywalking/plugins/sw_elasticsearch.py             |   2 +-
 skywalking/plugins/sw_fastapi.py                   |   4 +-
 skywalking/plugins/sw_flask.py                     |   4 +-
 skywalking/plugins/sw_loguru.py                    |  10 +-
 skywalking/plugins/sw_mysqlclient.py               |   4 +-
 skywalking/plugins/sw_psycopg.py                   |  32 ++--
 skywalking/plugins/sw_psycopg2.py                  |  10 +-
 skywalking/plugins/sw_pymongo.py                   |  12 +-
 skywalking/plugins/sw_pymysql.py                   |   4 +-
 skywalking/plugins/sw_requests.py                  |   2 +-
 skywalking/plugins/sw_sanic.py                     |   4 +-
 skywalking/profile/profile_context.py              |  12 +-
 skywalking/trace/context.py                        |   4 +-
 skywalking/trace/segment.py                        |   4 +-
 skywalking/trace/span.py                           |   4 +-
 skywalking/utils/filter.py                         |   4 +-
 tests/e2e/base/docker-compose.base.yml             |  12 +-
 tests/e2e/case/grpc/docker-compose.yml             |   4 +-
 tests/e2e/case/http/docker-compose.yml             |   4 +-
 tests/e2e/case/kafka/docker-compose.yml            |  12 +-
 .../e2e/case/profiling/greenlet/docker-compose.yml |   4 +-
 tests/e2e/case/profiling/provider/entrypoint.py    |   2 +-
 .../case/profiling/threading/docker-compose.yml    |   4 +-
 .../data/sw_elasticsearch/docker-compose.yml       |   4 +-
 tests/plugin/data/sw_happybase/docker-compose.yml  |   4 +-
 tests/plugin/data/sw_kafka/docker-compose.yml      |   4 +-
 tests/plugin/data/sw_loguru/docker-compose.yml     |   6 +-
 .../plugin/data/sw_mysqlclient/docker-compose.yml  |   6 +-
 tests/plugin/data/sw_psycopg/docker-compose.yml    |   6 +-
 tests/plugin/data/sw_psycopg2/docker-compose.yml   |   6 +-
 tests/plugin/data/sw_pymongo/docker-compose.yml    |   6 +-
 tests/plugin/data/sw_pymysql/docker-compose.yml    |   6 +-
 tests/plugin/data/sw_rabbitmq/docker-compose.yml   |   4 +-
 tests/plugin/data/sw_redis/docker-compose.yml      |   4 +-
 tests/plugin/docker-compose.base.yml               |   4 +-
 tests/plugin/http/sw_aiohttp/docker-compose.yml    |   4 +-
 tests/plugin/http/sw_http/docker-compose.yml       |   4 +-
 tests/plugin/http/sw_http_wsgi/docker-compose.yml  |   4 +-
 tests/plugin/http/sw_httpx/docker-compose.yml      |   4 +-
 tests/plugin/http/sw_requests/docker-compose.yml   |   4 +-
 tests/plugin/http/sw_urllib3/docker-compose.yml    |   4 +-
 tests/plugin/http/sw_websockets/docker-compose.yml |   6 +-
 tests/plugin/web/sw_bottle/docker-compose.yml      |   6 +-
 tests/plugin/web/sw_django/docker-compose.yml      |   6 +-
 tests/plugin/web/sw_falcon/docker-compose.yml      |   4 +-
 tests/plugin/web/sw_fastapi/docker-compose.yml     |   6 +-
 tests/plugin/web/sw_flask/docker-compose.yml       |   6 +-
 tests/plugin/web/sw_pyramid/docker-compose.yml     |   4 +-
 tests/plugin/web/sw_sanic/docker-compose.yml       |   6 +-
 tests/plugin/web/sw_tornado/docker-compose.yml     |   4 +-
 tests/unit/test_ant_matcher.py                     |   2 +-
 tests/unit/test_filter.py                          |   2 +-
 tools/config_doc_gen.py                            |  14 +-
 81 files changed, 564 insertions(+), 381 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8d7f963..0d2c325 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,8 +4,8 @@
 
 - **Important Note and Breaking Changes:**
   - Python 3.6 is no longer supported and may not function properly.
-  - A number of configuration options (mostly environment variables) are renamed to follow the convention of
-  'SW_AGENT' prefixes, please check with the latest official documentation before upgrading. (#273)
+  - A number of common configuration options (environment variables) are renamed to follow the convention of Java agent,
+  please check with the latest official documentation before upgrading. (#273, #282)
   
   https://skywalking.apache.org/docs/skywalking-python/v1.0.0/en/setup/configuration/
   - All agent core capabilities are now covered by test cases and enabled by default (Trace, Log, PVM runtime metrics, Profiler)
diff --git a/Makefile b/Makefile
index ea6ebd0..349bd0f 100644
--- a/Makefile
+++ b/Makefile
@@ -67,6 +67,7 @@ install: gen-basic
 # flake8 configurations should go to the file setup.cfg
 lint: clean
 	poetry run flake8 .
+	poetry run pylint --disable=all --enable=E0602,E0603,E1101 skywalking tests
 
 .PHONY: fix
 # fix problems described in CodingStyle.md - verify outcome with extra care
diff --git a/docs/en/setup/Configuration.md b/docs/en/setup/Configuration.md
index d9f28d9..fc94779 100644
--- a/docs/en/setup/Configuration.md
+++ b/docs/en/setup/Configuration.md
@@ -17,81 +17,81 @@ export SW_AGENT_YourConfiguration=YourValue
 ###  Agent Core Configuration Options
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| collector_address | SW_AGENT_COLLECTOR_ADDRESS | <class 'str'> | oap_host:oap_port | The backend OAP server address, 11800 is default OAP gRPC port, 12800 is HTTP, Kafka ignores this option and uses kafka_bootstrap_servers option. **This option should be changed accordingly with selected protocol** |
+| agent_collector_backend_services | SW_AGENT_AGENT_COLLECTOR_BACKEND_SERVICES | <class 'str'> | oap_host:oap_port | The backend OAP server address, 11800 is default OAP gRPC port, 12800 is HTTP, Kafka ignores this option and uses kafka_bootstrap_servers option. **This option should be changed accordingly with selected protocol** |
 | protocol | SW_AGENT_PROTOCOL | <class 'str'> | grpc | The protocol to communicate with the backend OAP, `http`, `grpc` or `kafka`, **we highly suggest using `grpc` in production as it's well optimized than `http`**. The `kafka` protocol provides an alternative way to submit data to the backend. |
-| service_name | SW_AGENT_SERVICE_NAME | <class 'str'> | Python Service Name | The name of your awesome Python service |
-| service_instance | SW_AGENT_SERVICE_INSTANCE | <class 'str'> | str(uuid.uuid1()).replace('-', '') | The name of this particular awesome Python service instance |
-| namespace | SW_AGENT_NAMESPACE | <class 'str'> |  | The agent namespace of the Python service (available as tag and the suffix of service name) |
+| agent_name | SW_AGENT_AGENT_NAME | <class 'str'> | Python Service Name | The name of your awesome Python service |
+| agent_instance_name | SW_AGENT_AGENT_INSTANCE_NAME | <class 'str'> | str(uuid.uuid1()).replace('-', '') | The name of this particular awesome Python service instance |
+| agent_namespace | SW_AGENT_AGENT_NAMESPACE | <class 'str'> |  | The agent namespace of the Python service (available as tag and the suffix of service name) |
 | kafka_bootstrap_servers | SW_AGENT_KAFKA_BOOTSTRAP_SERVERS | <class 'str'> | localhost:9092 | A list of host/port pairs to use for establishing the initial connection to your Kafka cluster. It is in the form of host1:port1,host2:port2,... (used for Kafka reporter protocol) |
 | kafka_namespace | SW_AGENT_KAFKA_NAMESPACE | <class 'str'> |  | The kafka namespace specified by OAP side SW_NAMESPACE, prepends the following kafka topic names with a `-`. |
 | kafka_topic_management | SW_AGENT_KAFKA_TOPIC_MANAGEMENT | <class 'str'> | skywalking-managements | Specifying Kafka topic name for service instance reporting and registering, this should be in sync with OAP |
 | kafka_topic_segment | SW_AGENT_KAFKA_TOPIC_SEGMENT | <class 'str'> | skywalking-segments | Specifying Kafka topic name for Tracing data, this should be in sync with OAP |
 | kafka_topic_log | SW_AGENT_KAFKA_TOPIC_LOG | <class 'str'> | skywalking-logs | Specifying Kafka topic name for Log data, this should be in sync with OAP |
 | kafka_topic_meter | SW_AGENT_KAFKA_TOPIC_METER | <class 'str'> | skywalking-meters | Specifying Kafka topic name for Meter data, this should be in sync with OAP |
-| kafka_reporter_custom_configurations | SW_AGENT_KAFKA_REPORTER_CUSTOM_CONFIGURATIONS | <class 'str'> |  | The configs to init KafkaProducer, supports the basic arguments (whose type is either `str`, `bool`, or `int`) listed [here](https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html#kafka.KafkaProducer) This config only works from env variables, each one should be passed in `SW_AGENT_KAFKA_REPORTER_CONFIG_<KEY_NAME>` |
-| force_tls | SW_AGENT_FORCE_TLS | <class 'bool'> | False | Use TLS for communication with SkyWalking OAP (no cert required) |
-| authentication | SW_AGENT_AUTHENTICATION | <class 'str'> |  | The authentication token to verify that the agent is trusted by the backend OAP, as for how to configure the backend, refer to [the yaml](https://github.com/apache/skywalking/blob/4f0f39ffccdc9b41049903cc540b8904f7c9728e/oap-server/server-bootstrap/src/main/resources/application.yml#L155-L158). |
-| logging_level | SW_AGENT_LOGGING_LEVEL | <class 'str'> | INFO | The level of agent self-logs, could be one of `CRITICAL`, `FATAL`, `ERROR`, `WARN`(`WARNING`), `INFO`, `DEBUG`. Please turn on debug if an issue is encountered to find out what's going on |
+| kafka_reporter_custom_configurations | SW_AGENT_KAFKA_REPORTER_CUSTOM_CONFIGURATIONS | <class 'str'> |  | The configs to init KafkaProducer, supports the basic arguments (whose type is either `str`, `bool`, or `int`) listed [here](https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html#kafka.KafkaProducer) This config only works from env variables, each one should be passed in `SW_KAFKA_REPORTER_CONFIG_<KEY_NAME>` |
+| agent_force_tls | SW_AGENT_AGENT_FORCE_TLS | <class 'bool'> | False | Use TLS for communication with SkyWalking OAP (no cert required) |
+| agent_authentication | SW_AGENT_AGENT_AUTHENTICATION | <class 'str'> |  | The authentication token to verify that the agent is trusted by the backend OAP, as for how to configure the backend, refer to [the yaml](https://github.com/apache/skywalking/blob/4f0f39ffccdc9b41049903cc540b8904f7c9728e/oap-server/server-bootstrap/src/main/resources/application.yml#L155-L158). |
+| agent_logging_level | SW_AGENT_AGENT_LOGGING_LEVEL | <class 'str'> | INFO | The level of agent self-logs, could be one of `CRITICAL`, `FATAL`, `ERROR`, `WARN`(`WARNING`), `INFO`, `DEBUG`. Please turn on debug if an issue is encountered to find out what's going on |
 ###  Agent Core Danger Zone
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| heartbeat_period | SW_AGENT_HEARTBEAT_PERIOD | <class 'int'> | 30 | The agent will exchange heartbeat message with SkyWalking OAP backend every `period` seconds |
-| collector_properties_report_period_factor | SW_AGENT_COLLECTOR_PROPERTIES_REPORT_PERIOD_FACTOR | <class 'int'> | 10 | The agent will report service instance properties every `factor * heartbeat period` seconds default: 10*30 = 300 seconds |
-| instance_properties_json | SW_AGENT_INSTANCE_PROPERTIES_JSON | <class 'str'> |  | A custom JSON string to be reported as service instance properties, e.g. `{"key": "value"}` |
-| experimental_fork_support | SW_AGENT_EXPERIMENTAL_FORK_SUPPORT | <class 'bool'> | False | The agent will try to restart itself in any os.fork()-ed child process. Important Note: it's not suitable for short-lived processes as each one will introduce overhead and create a new instance in SkyWalking dashboard in format of `service_instance-child-<pid>` (TODO) |
-| queue_timeout | SW_AGENT_QUEUE_TIMEOUT | <class 'int'> | 1 | DANGEROUS - This option controls the interval of each bulk report from telemetry data queues Do not modify unless you have evaluated its impact given your service load. |
+| agent_collector_heartbeat_period | SW_AGENT_AGENT_COLLECTOR_HEARTBEAT_PERIOD | <class 'int'> | 30 | The agent will exchange heartbeat message with SkyWalking OAP backend every `period` seconds |
+| agent_collector_properties_report_period_factor | SW_AGENT_AGENT_COLLECTOR_PROPERTIES_REPORT_PERIOD_FACTOR | <class 'int'> | 10 | The agent will report service instance properties every `factor * heartbeat period` seconds default: 10*30 = 300 seconds |
+| agent_instance_properties_json | SW_AGENT_AGENT_INSTANCE_PROPERTIES_JSON | <class 'str'> |  | A custom JSON string to be reported as service instance properties, e.g. `{"key": "value"}` |
+| agent_experimental_fork_support | SW_AGENT_AGENT_EXPERIMENTAL_FORK_SUPPORT | <class 'bool'> | False | The agent will try to restart itself in any os.fork()-ed child process. Important Note: it's not suitable for short-lived processes as each one will introduce overhead and create a new instance in SkyWalking dashboard in format of `service_instance-child-<pid>` (TODO) |
+| agent_queue_timeout | SW_AGENT_AGENT_QUEUE_TIMEOUT | <class 'int'> | 1 | DANGEROUS - This option controls the interval of each bulk report from telemetry data queues Do not modify unless you have evaluated its impact given your service load. |
 ###  SW_PYTHON Auto Instrumentation CLI
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| sw_python_bootstrap_propagate | SW_AGENT_SW_PYTHON_BOOTSTRAP_PROPAGATE | <class 'bool'> | False | Special: can only be passed via environment. This config controls the child process agent bootstrap behavior in `sw-python` CLI, if set to `False`, a valid child process will not boot up a SkyWalking Agent. Please refer to the [CLI Guide](CLI.md) for details. |
+| agent_sw_python_bootstrap_propagate | SW_AGENT_AGENT_SW_PYTHON_BOOTSTRAP_PROPAGATE | <class 'bool'> | False | Special: can only be passed via environment. This config controls the child process agent bootstrap behavior in `sw-python` CLI, if set to `False`, a valid child process will not boot up a SkyWalking Agent. Please refer to the [CLI Guide](CLI.md) for details. |
 ###  Trace Reporter Configurations
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| trace_reporter_max_buffer_size | SW_AGENT_TRACE_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending the segment data to backend, segments beyond this are silently dropped |
-| trace_ignore_path | SW_AGENT_TRACE_IGNORE_PATH | <class 'str'> |  | You can setup multiple URL path patterns, The endpoints match these patterns wouldn't be traced. the current matching rules follow Ant Path match style , like /path/*, /path/**, /path/?. |
-| ignore_suffix | SW_AGENT_IGNORE_SUFFIX | <class 'str'> | .jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg  | If the operation name of the first span is included in this set, this segment should be ignored. |
+| agent_trace_reporter_max_buffer_size | SW_AGENT_AGENT_TRACE_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending the segment data to backend, segments beyond this are silently dropped |
+| agent_trace_ignore_path | SW_AGENT_AGENT_TRACE_IGNORE_PATH | <class 'str'> |  | You can setup multiple URL path patterns, The endpoints match these patterns wouldn't be traced. the current matching rules follow Ant Path match style , like /path/*, /path/**, /path/?. |
+| agent_ignore_suffix | SW_AGENT_AGENT_IGNORE_SUFFIX | <class 'str'> | .jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg  | If the operation name of the first span is included in this set, this segment should be ignored. |
 | correlation_element_max_number | SW_AGENT_CORRELATION_ELEMENT_MAX_NUMBER | <class 'int'> | 3 | Max element count of the correlation context. |
 | correlation_value_max_length | SW_AGENT_CORRELATION_VALUE_MAX_LENGTH | <class 'int'> | 128 | Max value length of correlation context element. |
 ###  Profiling Configurations
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| profiler_active | SW_AGENT_PROFILER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will enable profiler when user create a new profiling task. |
-| get_profile_task_interval | SW_AGENT_GET_PROFILE_TASK_INTERVAL | <class 'int'> | 20 | The number of seconds between two profile task query. |
-| profile_max_parallel | SW_AGENT_PROFILE_MAX_PARALLEL | <class 'int'> | 5 | The number of parallel monitor segment count. |
-| profile_duration | SW_AGENT_PROFILE_DURATION | <class 'int'> | 10 | The maximum monitor segment time(minutes), if current segment monitor time out of limit, then stop it. |
-| profile_dump_max_stack_depth | SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH | <class 'int'> | 500 | The number of max dump thread stack depth |
-| profile_snapshot_transport_buffer_size | SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE | <class 'int'> | 50 | The number of snapshot transport to backend buffer size |
+| agent_profile_active | SW_AGENT_AGENT_PROFILE_ACTIVE | <class 'bool'> | True | If `True`, Python agent will enable profiler when user create a new profiling task. |
+| agent_collector_get_profile_task_interval | SW_AGENT_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL | <class 'int'> | 20 | The number of seconds between two profile task query. |
+| agent_profile_max_parallel | SW_AGENT_AGENT_PROFILE_MAX_PARALLEL | <class 'int'> | 5 | The number of parallel monitor segment count. |
+| agent_profile_duration | SW_AGENT_AGENT_PROFILE_DURATION | <class 'int'> | 10 | The maximum monitor segment time(minutes), if current segment monitor time out of limit, then stop it. |
+| agent_profile_dump_max_stack_depth | SW_AGENT_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH | <class 'int'> | 500 | The number of max dump thread stack depth |
+| agent_profile_snapshot_transport_buffer_size | SW_AGENT_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE | <class 'int'> | 50 | The number of snapshot transport to backend buffer size |
 ###  Log Reporter Configurations
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| log_reporter_active | SW_AGENT_LOG_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected logs to the OAP or Satellite. Otherwise, it disables the feature. |
-| log_reporter_safe_mode | SW_AGENT_LOG_REPORTER_SAFE_MODE | <class 'bool'> | False | If `True`, Python agent will filter out HTTP basic auth information from log records. By default, it disables the feature due to potential performance impact brought by regular expression |
-| log_reporter_max_buffer_size | SW_AGENT_LOG_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending log data to backend, logs beyond this are silently dropped. |
-| log_reporter_level | SW_AGENT_LOG_REPORTER_LEVEL | <class 'str'> | WARNING | This config specifies the logger levels of concern, any logs with a level below the config will be ignored. |
-| log_reporter_ignore_filter | SW_AGENT_LOG_REPORTER_IGNORE_FILTER | <class 'bool'> | False | This config customizes whether to ignore the application-defined logger filters, if `True`, all logs are reported disregarding any filter rules. |
-| log_reporter_formatted | SW_AGENT_LOG_REPORTER_FORMATTED | <class 'bool'> | True | If `True`, the log reporter will transmit the logs as formatted. Otherwise, puts logRecord.msg and logRecord.args into message content and tags(`argument.n`), respectively. Along with an `exception` tag if an exception was raised. Only applies to logging module. |
-| log_reporter_layout | SW_AGENT_LOG_REPORTER_LAYOUT | <class 'str'> | %(asctime)s [%(threadName)s] %(levelname)s %(name)s - %(message)s | The log reporter formats the logRecord message based on the layout given. Only applies to logging module. |
-| cause_exception_depth | SW_AGENT_CAUSE_EXCEPTION_DEPTH | <class 'int'> | 10 | This configuration is shared by log reporter and tracer. This config limits agent to report up to `limit` stacktrace, please refer to [Python traceback]( https://docs.python.org/3/library/traceback.html#traceback.print_tb) for more explanations. |
+| agent_log_reporter_active | SW_AGENT_AGENT_LOG_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected logs to the OAP or Satellite. Otherwise, it disables the feature. |
+| agent_log_reporter_safe_mode | SW_AGENT_AGENT_LOG_REPORTER_SAFE_MODE | <class 'bool'> | False | If `True`, Python agent will filter out HTTP basic auth information from log records. By default, it disables the feature due to potential performance impact brought by regular expression |
+| agent_log_reporter_max_buffer_size | SW_AGENT_AGENT_LOG_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending log data to backend, logs beyond this are silently dropped. |
+| agent_log_reporter_level | SW_AGENT_AGENT_LOG_REPORTER_LEVEL | <class 'str'> | WARNING | This config specifies the logger levels of concern, any logs with a level below the config will be ignored. |
+| agent_log_reporter_ignore_filter | SW_AGENT_AGENT_LOG_REPORTER_IGNORE_FILTER | <class 'bool'> | False | This config customizes whether to ignore the application-defined logger filters, if `True`, all logs are reported disregarding any filter rules. |
+| agent_log_reporter_formatted | SW_AGENT_AGENT_LOG_REPORTER_FORMATTED | <class 'bool'> | True | If `True`, the log reporter will transmit the logs as formatted. Otherwise, puts logRecord.msg and logRecord.args into message content and tags(`argument.n`), respectively. Along with an `exception` tag if an exception was raised. Only applies to logging module. |
+| agent_log_reporter_layout | SW_AGENT_AGENT_LOG_REPORTER_LAYOUT | <class 'str'> | %(asctime)s [%(threadName)s] %(levelname)s %(name)s - %(message)s | The log reporter formats the logRecord message based on the layout given. Only applies to logging module. |
+| agent_cause_exception_depth | SW_AGENT_AGENT_CAUSE_EXCEPTION_DEPTH | <class 'int'> | 10 | This configuration is shared by log reporter and tracer. This config limits agent to report up to `limit` stacktrace, please refer to [Python traceback]( https://docs.python.org/3/library/traceback.html#traceback.print_tb) for more explanations. |
 ###  Meter Reporter Configurations
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| meter_reporter_active | SW_AGENT_METER_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected meters to the OAP or Satellite. Otherwise, it disables the feature. |
-| meter_reporter_max_buffer_size | SW_AGENT_METER_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending meter data to backend, meters beyond this are silently dropped. |
-| meter_reporter_period | SW_AGENT_METER_REPORTER_PERIOD | <class 'int'> | 20 | The interval in seconds between each meter data report |
-| pvm_meter_reporter_active | SW_AGENT_PVM_METER_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected Python Virtual Machine (PVM) meters to the OAP or Satellite. Otherwise, it disables the feature. |
+| agent_meter_reporter_active | SW_AGENT_AGENT_METER_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected meters to the OAP or Satellite. Otherwise, it disables the feature. |
+| agent_meter_reporter_max_buffer_size | SW_AGENT_AGENT_METER_REPORTER_MAX_BUFFER_SIZE | <class 'int'> | 10000 | The maximum queue backlog size for sending meter data to backend, meters beyond this are silently dropped. |
+| agent_meter_reporter_period | SW_AGENT_AGENT_METER_REPORTER_PERIOD | <class 'int'> | 20 | The interval in seconds between each meter data report |
+| agent_pvm_meter_reporter_active | SW_AGENT_AGENT_PVM_METER_REPORTER_ACTIVE | <class 'bool'> | True | If `True`, Python agent will report collected Python Virtual Machine (PVM) meters to the OAP or Satellite. Otherwise, it disables the feature. |
 ###  Plugin Related configurations
 | Configuration | Environment Variable | Type | Default Value | Description |
 | :------------ | :------------ | :------------ | :------------ | :------------ |
-| disable_plugins | SW_AGENT_DISABLE_PLUGINS | <class 'list'> | [''] | The name patterns in comma-separated pattern, plugins whose name matches one of the pattern won't be installed |
-| http_params_length_threshold | SW_AGENT_HTTP_PARAMS_LENGTH_THRESHOLD | <class 'int'> | 1024 | When `COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the OAP backend, use negative values to keep and send the complete parameters, NB. this config item is added for the sake of performance. |
-| http_ignore_method | SW_AGENT_HTTP_IGNORE_METHOD | <class 'str'> |  | Comma-delimited list of http methods to ignore (GET, POST, HEAD, OPTIONS, etc...) |
-| sql_parameters_length | SW_AGENT_SQL_PARAMETERS_LENGTH | <class 'int'> | 0 | The maximum length of the collected parameter, parameters longer than the specified length will be truncated, length 0 turns off parameter tracing |
-| pymongo_trace_parameters | SW_AGENT_PYMONGO_TRACE_PARAMETERS | <class 'bool'> | False | Indicates whether to collect the filters of pymongo |
-| pymongo_parameters_max_length | SW_AGENT_PYMONGO_PARAMETERS_MAX_LENGTH | <class 'int'> | 512 | The maximum length of the collected filters, filters longer than the specified length will be truncated |
-| elasticsearch_trace_dsl | SW_AGENT_ELASTICSEARCH_TRACE_DSL | <class 'bool'> | False | If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false |
-| flask_collect_http_params | SW_AGENT_FLASK_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Flask plugin should collect the parameters of the request. |
-| sanic_collect_http_params | SW_AGENT_SANIC_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Sanic plugin should collect the parameters of the request. |
-| django_collect_http_params | SW_AGENT_DJANGO_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Django plugin should collect the parameters of the request. |
-| fastapi_collect_http_params | SW_AGENT_FASTAPI_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the FastAPI plugin should collect the parameters of the request. |
-| bottle_collect_http_params | SW_AGENT_BOTTLE_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Bottle plugin should collect the parameters of the request. |
-| celery_parameters_length | SW_AGENT_CELERY_PARAMETERS_LENGTH | <class 'int'> | 512 | The maximum length of `celery` functions parameters, longer than this will be truncated, 0 turns off |
+| agent_disable_plugins | SW_AGENT_AGENT_DISABLE_PLUGINS | <class 'list'> | [''] | The name patterns in comma-separated pattern, plugins whose name matches one of the pattern won't be installed |
+| plugin_http_http_params_length_threshold | SW_AGENT_PLUGIN_HTTP_HTTP_PARAMS_LENGTH_THRESHOLD | <class 'int'> | 1024 | When `COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the OAP backend, use negative values to keep and send the complete parameters, NB. this config item is added for the sake of performance. |
+| plugin_http_ignore_method | SW_AGENT_PLUGIN_HTTP_IGNORE_METHOD | <class 'str'> |  | Comma-delimited list of http methods to ignore (GET, POST, HEAD, OPTIONS, etc...) |
+| plugin_sql_parameters_max_length | SW_AGENT_PLUGIN_SQL_PARAMETERS_MAX_LENGTH | <class 'int'> | 0 | The maximum length of the collected parameter, parameters longer than the specified length will be truncated, length 0 turns off parameter tracing |
+| plugin_pymongo_trace_parameters | SW_AGENT_PLUGIN_PYMONGO_TRACE_PARAMETERS | <class 'bool'> | False | Indicates whether to collect the filters of pymongo |
+| plugin_pymongo_parameters_max_length | SW_AGENT_PLUGIN_PYMONGO_PARAMETERS_MAX_LENGTH | <class 'int'> | 512 | The maximum length of the collected filters, filters longer than the specified length will be truncated |
+| plugin_elasticsearch_trace_dsl | SW_AGENT_PLUGIN_ELASTICSEARCH_TRACE_DSL | <class 'bool'> | False | If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false |
+| plugin_flask_collect_http_params | SW_AGENT_PLUGIN_FLASK_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Flask plugin should collect the parameters of the request. |
+| plugin_sanic_collect_http_params | SW_AGENT_PLUGIN_SANIC_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Sanic plugin should collect the parameters of the request. |
+| plugin_django_collect_http_params | SW_AGENT_PLUGIN_DJANGO_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Django plugin should collect the parameters of the request. |
+| plugin_fastapi_collect_http_params | SW_AGENT_PLUGIN_FASTAPI_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the FastAPI plugin should collect the parameters of the request. |
+| plugin_bottle_collect_http_params | SW_AGENT_PLUGIN_BOTTLE_COLLECT_HTTP_PARAMS | <class 'bool'> | False | This config item controls that whether the Bottle plugin should collect the parameters of the request. |
+| plugin_celery_parameters_length | SW_AGENT_PLUGIN_CELERY_PARAMETERS_LENGTH | <class 'int'> | 512 | The maximum length of `celery` functions parameters, longer than this will be truncated, 0 turns off |
diff --git a/docs/en/setup/Intrusive.md b/docs/en/setup/Intrusive.md
index 89d4f47..743bb06 100644
--- a/docs/en/setup/Intrusive.md
+++ b/docs/en/setup/Intrusive.md
@@ -7,20 +7,20 @@ which is by importing SkyWalking into your project and starting the agent.
 By default, SkyWalking Python agent uses gRPC protocol to report data to SkyWalking backend,
 in SkyWalking backend, the port of gRPC protocol is `11800`, and the port of HTTP protocol is `12800`,
 
-You could configure `collector_address` (or environment variable `SW_AGENT_COLLECTOR_ADDRESS`)
+You could configure `collector_address` (or environment variable `SW_AGENT_COLLECTOR_BACKEND_SERVICES`)
 and set `protocol` (or environment variable `SW_AGENT_PROTOCOL` to one of
 `gprc`, `http` or `kafka` according to the protocol you would like to use.
 
 ### Report data via gRPC protocol (Default)
 
 For example, if you want to use gRPC protocol to report data, configure `collector_address`
-(or environment variable `SW_AGENT_COLLECTOR_ADDRESS`) to `<oap-ip-or-host>:11800`,
+(or environment variable `SW_AGENT_COLLECTOR_BACKEND_SERVICES`) to `<oap-ip-or-host>:11800`,
 such as `127.0.0.1:11800`:
 
 ```python
 from skywalking import agent, config
 
-config.init(collector_address='127.0.0.1:11800', service_name='your awesome service')
+config.init(collector_address='127.0.0.1:11800', agent_name='your awesome service')
 
 agent.start()
 ```
@@ -28,7 +28,7 @@ agent.start()
 ### Report data via HTTP protocol
 
 However, if you want to use HTTP protocol to report data, configure `collector_address`
-(or environment variable `SW_AGENT_COLLECTOR_ADDRESS`) to `<oap-ip-or-host>:12800`,
+(or environment variable `SW_AGENT_COLLECTOR_BACKEND_SERVICES`) to `<oap-ip-or-host>:12800`,
 such as `127.0.0.1:12800`, further set `protocol` (or environment variable `SW_AGENT_PROTOCOL` to `http`):
 
 > Remember you should install `skywalking-python` with extra requires `http`, `pip install "apache-skywalking[http]`.
@@ -36,7 +36,7 @@ such as `127.0.0.1:12800`, further set `protocol` (or environment variable `SW_A
 ```python
 from skywalking import agent, config
 
-config.init(collector_address='127.0.0.1:12800', service_name='your awesome service', protocol='http')
+config.init(collector_address='127.0.0.1:12800', agent_name='your awesome service', protocol='http')
 
 agent.start()
 ```
@@ -44,7 +44,7 @@ agent.start()
 ### Report data via Kafka protocol
 
 Finally, if you want to use Kafka protocol to report data, configure `kafka_bootstrap_servers`
-(or environment variable `SW_AGENT_KAFKA_BOOTSTRAP_SERVERS`) to `kafka-brokers`,
+(or environment variable `SW_KAFKA_BOOTSTRAP_SERVERS`) to `kafka-brokers`,
 such as `127.0.0.1:9200`, further set `protocol` (or environment variable `SW_AGENT_PROTOCOL` to `kafka`):
 
 > Remember you should install `skywalking-python` with extra requires `kafka`, `pip install "apache-skywalking[kafka]"`.
@@ -52,11 +52,11 @@ such as `127.0.0.1:9200`, further set `protocol` (or environment variable `SW_AG
 ```python
 from skywalking import agent, config
 
-config.init(kafka_bootstrap_servers='127.0.0.1:9200', service_name='your awesome service', protocol='kafka')
+config.init(kafka_bootstrap_servers='127.0.0.1:9200', agent_name='your awesome service', protocol='kafka')
 
 agent.start()
 ```
 
-Alternatively, you can also pass the configurations via environment variables (such as `SW_AGENT_SERVICE_NAME`, `SW_AGENT_COLLECTOR_ADDRESS`, etc.) so that you don't need to call `config.init`.
+Alternatively, you can also pass the configurations via environment variables (such as `SW_AGENT_NAME`, `SW_AGENT_COLLECTOR_BACKEND_SERVICES`, etc.) so that you don't need to call `config.init`.
 
 All supported environment variables can be found in the [Environment Variables List](Configuration.md).
diff --git a/docs/en/setup/advanced/LogReporter.md b/docs/en/setup/advanced/LogReporter.md
index acfe409..bbe2c44 100644
--- a/docs/en/setup/advanced/LogReporter.md
+++ b/docs/en/setup/advanced/LogReporter.md
@@ -8,7 +8,7 @@ To utilize this feature, you will need to add some new configurations to the age
 ```Python 
 from skywalking import agent, config
 
-config.init(collector_address='127.0.0.1:11800', service_name='your awesome service',
+config.init(collector_address='127.0.0.1:11800', agent_name='your awesome service',
                 log_reporter_active=True)  # defaults to grpc protocol
 agent.start()
 ``` 
diff --git a/docs/en/setup/faq/How-to-disable-plugin.md b/docs/en/setup/faq/How-to-disable-plugin.md
index 757e899..32de24b 100644
--- a/docs/en/setup/faq/How-to-disable-plugin.md
+++ b/docs/en/setup/faq/How-to-disable-plugin.md
@@ -6,7 +6,8 @@ and disable one or more plugins by following methods.**
 ```python
 from skywalking import config
 
-config.disable_plugins = ['sw_http_server', 'sw_urllib_request']  # can be also CSV format, i.e. 'sw_http_server,sw_urllib_request'
+config.agent_disable_plugins = ['sw_http_server',
+                                'sw_urllib_request']  # can be also CSV format, i.e. 'sw_http_server,sw_urllib_request'
 ```
 
 You can also disable the plugins via environment variables `SW_AGENT_DISABLE_PLUGINS`, 
diff --git a/docs/en/setup/faq/How-to-use-with-uwsgi.md b/docs/en/setup/faq/How-to-use-with-uwsgi.md
index f051c97..2bd12ac 100644
--- a/docs/en/setup/faq/How-to-use-with-uwsgi.md
+++ b/docs/en/setup/faq/How-to-use-with-uwsgi.md
@@ -17,7 +17,7 @@ from skywalking import agent, config
 
 @postfork
 def init_tracing():
-    config.init(collector_address='127.0.0.1:11800', service_name='your awesome service')
+    config.init(collector_address='127.0.0.1:11800', agent_name='your awesome service')
 
     agent.start()
 
diff --git a/poetry.lock b/poetry.lock
index 88afb64..dbe6e3f 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -173,6 +173,25 @@ files = [
     {file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"},
 ]
 
+[[package]]
+name = "astroid"
+version = "2.11.7"
+description = "An abstract syntax tree for Python with inference support."
+category = "dev"
+optional = false
+python-versions = ">=3.6.2"
+files = [
+    {file = "astroid-2.11.7-py3-none-any.whl", hash = "sha256:86b0a340a512c65abf4368b80252754cda17c02cdbbd3f587dddf98112233e7b"},
+    {file = "astroid-2.11.7.tar.gz", hash = "sha256:bb24615c77f4837c707669d16907331374ae8a964650a66999da3f5ca68dc946"},
+]
+
+[package.dependencies]
+lazy-object-proxy = ">=1.4.0"
+setuptools = ">=20.0"
+typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
+typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""}
+wrapt = ">=1.11,<2"
+
 [[package]]
 name = "async-timeout"
 version = "3.0.1"
@@ -693,6 +712,21 @@ files = [
 [package.dependencies]
 packaging = "*"
 
+[[package]]
+name = "dill"
+version = "0.3.6"
+description = "serialize all of python"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+    {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"},
+    {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"},
+]
+
+[package.extras]
+graph = ["objgraph (>=1.7.2)"]
+
 [[package]]
 name = "django"
 version = "3.2.8"
@@ -1535,6 +1569,24 @@ files = [
     {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
 ]
 
+[[package]]
+name = "isort"
+version = "5.11.5"
+description = "A Python utility / library to sort Python imports."
+category = "dev"
+optional = false
+python-versions = ">=3.7.0"
+files = [
+    {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"},
+    {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"},
+]
+
+[package.extras]
+colors = ["colorama (>=0.4.3,<0.5.0)"]
+pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"]
+plugins = ["setuptools"]
+requirements-deprecated-finder = ["pip-api", "pipreqs"]
+
 [[package]]
 name = "itsdangerous"
 version = "2.1.2"
@@ -1614,6 +1666,52 @@ sqs = ["boto3 (>=1.9.12)", "pycurl (>=7.44.1,<7.45.0)", "urllib3 (>=1.26.7)"]
 yaml = ["PyYAML (>=3.10)"]
 zookeeper = ["kazoo (>=1.3.1)"]
 
+[[package]]
+name = "lazy-object-proxy"
+version = "1.9.0"
+description = "A fast and thorough lazy object proxy."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+    {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"},
+    {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"},
+    {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"},
+    {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"},
+    {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"},
+    {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"},
+]
+
 [[package]]
 name = "loguru"
 version = "0.6.0"
@@ -1920,6 +2018,25 @@ plaster = ">=0.5"
 [package.extras]
 testing = ["pytest", "pytest-cov"]
 
+[[package]]
+name = "platformdirs"
+version = "3.0.0"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+    {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"},
+    {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""}
+
+[package.extras]
+docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
+
 [[package]]
 name = "pluggy"
 version = "1.0.0"
@@ -2215,6 +2332,31 @@ files = [
     {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"},
 ]
 
+[[package]]
+name = "pylint"
+version = "2.13.9"
+description = "python code static checker"
+category = "dev"
+optional = false
+python-versions = ">=3.6.2"
+files = [
+    {file = "pylint-2.13.9-py3-none-any.whl", hash = "sha256:705c620d388035bdd9ff8b44c5bcdd235bfb49d276d488dd2c8ff1736aa42526"},
+    {file = "pylint-2.13.9.tar.gz", hash = "sha256:095567c96e19e6f57b5b907e67d265ff535e588fe26b12b5ebe1fc5645b2c731"},
+]
+
+[package.dependencies]
+astroid = ">=2.11.5,<=2.12.0-dev0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+dill = ">=0.2"
+isort = ">=4.2.5,<6"
+mccabe = ">=0.6,<0.8"
+platformdirs = ">=2.2.0"
+tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
+typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""}
+
+[package.extras]
+testutil = ["gitpython (>3)"]
+
 [[package]]
 name = "pymongo"
 version = "3.12.0"
@@ -2795,6 +2937,40 @@ files = [
 [package.extras]
 docs = ["Sphinx (>=1.3.1)", "docutils", "pylons-sphinx-themes"]
 
+[[package]]
+name = "typed-ast"
+version = "1.5.4"
+description = "a fork of Python 2 and 3 ast modules with type comment support"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+files = [
+    {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"},
+    {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"},
+    {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"},
+    {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"},
+    {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"},
+    {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"},
+    {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"},
+    {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"},
+    {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"},
+    {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"},
+    {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"},
+    {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"},
+    {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"},
+    {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"},
+    {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"},
+    {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"},
+    {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"},
+    {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"},
+    {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"},
+    {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"},
+    {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"},
+    {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"},
+    {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"},
+    {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"},
+]
+
 [[package]]
 name = "typing-extensions"
 version = "4.4.0"
@@ -3463,4 +3639,4 @@ kafka = ["kafka-python"]
 [metadata]
 lock-version = "2.0"
 python-versions = ">=3.7, <3.11"
-content-hash = "e5d6730b56dadeffa7355b287be1264c2925a142e958cff02ed3d8067ec9261c"
+content-hash = "1d42154067478257d0ac1a7c065cd03e81219992808471f6b04cd45d53cc6f3f"
diff --git a/pyproject.toml b/pyproject.toml
index 899f042..80365c6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -130,6 +130,7 @@ loguru = "^0.6.0"
 httpx = "^0.23.3"
 
 [tool.poetry.group.lint.dependencies]
+pylint = '*'
 flake8 = "^5.0.4"
 # isort = "^5.10.1"
 unify = "^0.5"
diff --git a/skywalking/agent/__init__.py b/skywalking/agent/__init__.py
index 9d61487..77d590b 100644
--- a/skywalking/agent/__init__.py
+++ b/skywalking/agent/__init__.py
@@ -98,7 +98,7 @@ def __send_profile_snapshot():
 
 
 def __query_profile_command():
-    wait = base = config.get_profile_task_interval
+    wait = base = config.agent_collector_get_profile_task_interval
 
     while not __finished.is_set():
         try:
@@ -134,7 +134,7 @@ def __init_threading():
     global __heartbeat_thread, __report_thread, __log_report_thread, __query_profile_thread, \
         __command_dispatch_thread, __send_profile_thread, __queue, __log_queue, __snapshot_queue, __meter_queue, __finished
 
-    __queue = Queue(maxsize=config.trace_reporter_max_buffer_size)
+    __queue = Queue(maxsize=config.agent_trace_reporter_max_buffer_size)
     __finished = Event()
     __heartbeat_thread = Thread(name='HeartbeatThread', target=__heartbeat, daemon=True)
     __report_thread = Thread(name='ReportThread', target=__report, daemon=True)
@@ -144,12 +144,12 @@ def __init_threading():
     __report_thread.start()
     __command_dispatch_thread.start()
 
-    if config.meter_reporter_active:
-        __meter_queue = Queue(maxsize=config.meter_reporter_max_buffer_size)
+    if config.agent_meter_reporter_active:
+        __meter_queue = Queue(maxsize=config.agent_meter_reporter_max_buffer_size)
         __meter_report_thread = Thread(name='MeterReportThread', target=__report_meter, daemon=True)
         __meter_report_thread.start()
 
-        if config.pvm_meter_reporter_active:
+        if config.agent_pvm_meter_reporter_active:
             from skywalking.meter.pvm.cpu_usage import CPUUsageDataSource
             from skywalking.meter.pvm.gc_data import GCDataSource
             from skywalking.meter.pvm.mem_usage import MEMUsageDataSource
@@ -160,14 +160,13 @@ def __init_threading():
             GCDataSource().registry()
             ThreadDataSource().registry()
 
-
-    if config.log_reporter_active:
-        __log_queue = Queue(maxsize=config.log_reporter_max_buffer_size)
+    if config.agent_log_reporter_active:
+        __log_queue = Queue(maxsize=config.agent_log_reporter_max_buffer_size)
         __log_report_thread = Thread(name='LogReportThread', target=__report_log, daemon=True)
         __log_report_thread.start()
 
-    if config.profiler_active:
-        __snapshot_queue = Queue(maxsize=config.profile_snapshot_transport_buffer_size)
+    if config.agent_profile_active:
+        __snapshot_queue = Queue(maxsize=config.agent_profile_snapshot_transport_buffer_size)
 
         __query_profile_thread = Thread(name='QueryProfileCommandThread', target=__query_profile_command, daemon=True)
         __query_profile_thread.start()
@@ -189,7 +188,7 @@ def __init():
         __protocol = KafkaProtocol()
 
     plugins.install()
-    if config.log_reporter_active:  # todo - Add support for printing traceID/ context in logs
+    if config.agent_log_reporter_active:  # todo - Add support for printing traceID/ context in logs
         from skywalking import log
         log.install()
 
@@ -200,11 +199,11 @@ def __fini():
     __protocol.report_segment(__queue, False)
     __queue.join()
 
-    if config.log_reporter_active:
+    if config.agent_log_reporter_active:
         __protocol.report_log(__log_queue, False)
         __log_queue.join()
 
-    if config.profiler_active:
+    if config.agent_profile_active:
         __protocol.report_snapshot(__snapshot_queue, False)
         __snapshot_queue.join()
 
diff --git a/skywalking/agent/protocol/grpc.py b/skywalking/agent/protocol/grpc.py
index d873830..565d399 100644
--- a/skywalking/agent/protocol/grpc.py
+++ b/skywalking/agent/protocol/grpc.py
@@ -43,14 +43,14 @@ class GrpcProtocol(Protocol):
         self.properties_sent = False
         self.state = None
 
-        if config.force_tls:
-            self.channel = grpc.secure_channel(config.collector_address, grpc.ssl_channel_credentials())
+        if config.agent_force_tls:
+            self.channel = grpc.secure_channel(config.agent_collector_backend_services, grpc.ssl_channel_credentials())
         else:
-            self.channel = grpc.insecure_channel(config.collector_address)
+            self.channel = grpc.insecure_channel(config.agent_collector_backend_services)
 
-        if config.authentication:
+        if config.agent_authentication:
             self.channel = grpc.intercept_channel(
-                self.channel, header_adder_interceptor('authentication', config.authentication)
+                self.channel, header_adder_interceptor('authentication', config.agent_authentication)
             )
 
         self.channel.subscribe(self._cb, try_to_connect=True)
@@ -98,7 +98,7 @@ class GrpcProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -117,8 +117,8 @@ class GrpcProtocol(Protocol):
                 s = SegmentObject(
                     traceId=str(segment.related_traces[0]),
                     traceSegmentId=str(segment.segment_id),
-                    service=config.service_name,
-                    serviceInstance=config.service_instance,
+                    service=config.agent_name,
+                    serviceInstance=config.agent_instance_name,
                     spans=[SpanObject(
                         spanId=span.sid,
                         parentSpanId=span.pid,
@@ -167,7 +167,7 @@ class GrpcProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -199,7 +199,7 @@ class GrpcProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -230,7 +230,7 @@ class GrpcProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
diff --git a/skywalking/agent/protocol/http.py b/skywalking/agent/protocol/http.py
index 695604e..e3a9afa 100644
--- a/skywalking/agent/protocol/http.py
+++ b/skywalking/agent/protocol/http.py
@@ -47,7 +47,7 @@ class HttpProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -78,7 +78,7 @@ class HttpProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
diff --git a/skywalking/agent/protocol/kafka.py b/skywalking/agent/protocol/kafka.py
index e5483f7..1c7eaa4 100644
--- a/skywalking/agent/protocol/kafka.py
+++ b/skywalking/agent/protocol/kafka.py
@@ -53,7 +53,7 @@ class KafkaProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -71,8 +71,8 @@ class KafkaProtocol(Protocol):
                 s = SegmentObject(
                     traceId=str(segment.related_traces[0]),
                     traceSegmentId=str(segment.segment_id),
-                    service=config.service_name,
-                    serviceInstance=config.service_instance,
+                    service=config.agent_name,
+                    serviceInstance=config.agent_instance_name,
                     spans=[SpanObject(
                         spanId=span.sid,
                         parentSpanId=span.pid,
@@ -117,7 +117,7 @@ class KafkaProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
@@ -144,7 +144,7 @@ class KafkaProtocol(Protocol):
 
             while True:
                 try:
-                    timeout = config.queue_timeout  # type: int
+                    timeout = config.agent_queue_timeout  # type: int
                     if not start:  # make sure first time through queue is always checked
                         start = time()
                     else:
diff --git a/skywalking/bootstrap/loader/sitecustomize.py b/skywalking/bootstrap/loader/sitecustomize.py
index 46f0772..bf24ba1 100644
--- a/skywalking/bootstrap/loader/sitecustomize.py
+++ b/skywalking/bootstrap/loader/sitecustomize.py
@@ -131,7 +131,7 @@ else:
 
     # also override debug for skywalking agent itself
     if os.environ.get('SW_PYTHON_CLI_DEBUG_ENABLED') == 'True':  # set from the original CLI runner
-        config.logging_level = 'DEBUG'
+        config.agent_logging_level = 'DEBUG'
 
     # Currently supports configs read from os.environ
 
diff --git a/skywalking/client/__init__.py b/skywalking/client/__init__.py
index 420d1a2..d9f12ad 100644
--- a/skywalking/client/__init__.py
+++ b/skywalking/client/__init__.py
@@ -47,7 +47,7 @@ class ServiceManagementClient(ABC):
         Default: 30 * 10 seconds
         """
         self.sent_properties_counter += 1
-        if self.sent_properties_counter % config.collector_properties_report_period_factor == 0:
+        if self.sent_properties_counter % config.agent_collector_properties_report_period_factor == 0:
             self.send_instance_props()
 
     @staticmethod
@@ -74,11 +74,11 @@ class ServiceManagementClient(ABC):
                 {'key': 'Process No.', 'value': str(os.getpid())},
             ]
 
-        namespace = config.namespace
+        namespace = config.agent_namespace
         if namespace:
             properties.append({'key': 'namespace', 'value': namespace})
 
-        instance_properties_json = config.instance_properties_json
+        instance_properties_json = config.agent_instance_properties_json
         if instance_properties_json:
             # load instance properties from json string
             json_properties = json.loads(instance_properties_json)
diff --git a/skywalking/client/grpc.py b/skywalking/client/grpc.py
index 1ebcd97..7be0d0a 100644
--- a/skywalking/client/grpc.py
+++ b/skywalking/client/grpc.py
@@ -41,8 +41,8 @@ class GrpcServiceManagementClient(ServiceManagementClient):
 
     def send_instance_props(self):
         self.service_stub.reportInstanceProperties(InstanceProperties(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             properties=self.instance_properties,
         ))
 
@@ -50,15 +50,15 @@ class GrpcServiceManagementClient(ServiceManagementClient):
         self.refresh_instance_props()
 
         self.service_stub.keepAlive(InstancePingPkg(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
         ))
 
         if logger_debug_enabled:
             logger.debug(
                 'service heart beats, [%s], [%s]',
-                config.service_name,
-                config.service_instance,
+                config.agent_name,
+                config.agent_instance_name,
             )
 
 
@@ -95,8 +95,8 @@ class GrpcProfileTaskChannelService(ProfileTaskChannelService):
 
     def do_query(self):
         query = ProfileTaskCommandQuery(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             lastCommandTime=profile_task_execution_service.get_last_command_create_time()
         )
 
@@ -108,8 +108,8 @@ class GrpcProfileTaskChannelService(ProfileTaskChannelService):
 
     def finish(self, task: ProfileTask):
         finish_report = ProfileTaskFinishReport(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             taskId=task.task_id
         )
         self.profile_stub.reportTaskFinish(finish_report)
diff --git a/skywalking/client/http.py b/skywalking/client/http.py
index 7b8313e..bc35fd6 100644
--- a/skywalking/client/http.py
+++ b/skywalking/client/http.py
@@ -28,15 +28,15 @@ class HttpServiceManagementClient(ServiceManagementClient):
         super().__init__()
         self.instance_properties = self.get_instance_properties()
 
-        proto = 'https://' if config.force_tls else 'http://'
-        self.url_instance_props = f"{proto}{config.collector_address.rstrip('/')}/v3/management/reportProperties"
-        self.url_heart_beat = f"{proto}{config.collector_address.rstrip('/')}/v3/management/keepAlive"
+        proto = 'https://' if config.agent_force_tls else 'http://'
+        self.url_instance_props = f"{proto}{config.agent_collector_backend_services.rstrip('/')}/v3/management/reportProperties"
+        self.url_heart_beat = f"{proto}{config.agent_collector_backend_services.rstrip('/')}/v3/management/keepAlive"
         self.session = requests.Session()
 
     def send_instance_props(self):
         res = self.session.post(self.url_instance_props, json={
-            'service': config.service_name,
-            'serviceInstance': config.service_instance,
+            'service': config.agent_name,
+            'serviceInstance': config.agent_instance_name,
             'properties': self.instance_properties,
         })
         if logger_debug_enabled:
@@ -48,12 +48,12 @@ class HttpServiceManagementClient(ServiceManagementClient):
         if logger_debug_enabled:
             logger.debug(
                 'service heart beats, [%s], [%s]',
-                config.service_name,
-                config.service_instance,
+                config.agent_name,
+                config.agent_instance_name,
             )
         res = self.session.post(self.url_heart_beat, json={
-            'service': config.service_name,
-            'serviceInstance': config.service_instance,
+            'service': config.agent_name,
+            'serviceInstance': config.agent_instance_name,
         })
         if logger_debug_enabled:
             logger.debug('heartbeat response: %s', res)
@@ -61,8 +61,8 @@ class HttpServiceManagementClient(ServiceManagementClient):
 
 class HttpTraceSegmentReportService(TraceSegmentReportService):
     def __init__(self):
-        proto = 'https://' if config.force_tls else 'http://'
-        self.url_report = f"{proto}{config.collector_address.rstrip('/')}/v3/segment"
+        proto = 'https://' if config.agent_force_tls else 'http://'
+        self.url_report = f"{proto}{config.agent_collector_backend_services.rstrip('/')}/v3/segment"
         self.session = requests.Session()
 
     def report(self, generator):
@@ -70,8 +70,8 @@ class HttpTraceSegmentReportService(TraceSegmentReportService):
             res = self.session.post(self.url_report, json={
                 'traceId': str(segment.related_traces[0]),
                 'traceSegmentId': str(segment.segment_id),
-                'service': config.service_name,
-                'serviceInstance': config.service_instance,
+                'service': config.agent_name,
+                'serviceInstance': config.agent_instance_name,
                 'spans': [{
                     'spanId': span.sid,
                     'parentSpanId': span.pid,
@@ -112,8 +112,8 @@ class HttpTraceSegmentReportService(TraceSegmentReportService):
 
 class HttpLogDataReportService(LogDataReportService):
     def __init__(self):
-        proto = 'https://' if config.force_tls else 'http://'
-        self.url_report = f"{proto}{config.collector_address.rstrip('/')}/v3/logs"
+        proto = 'https://' if config.agent_force_tls else 'http://'
+        self.url_report = f"{proto}{config.agent_collector_backend_services.rstrip('/')}/v3/logs"
         self.session = requests.Session()
 
     def report(self, generator):
diff --git a/skywalking/client/kafka.py b/skywalking/client/kafka.py
index 16fdaba..536266d 100644
--- a/skywalking/client/kafka.py
+++ b/skywalking/client/kafka.py
@@ -32,7 +32,7 @@ kafka_configs = {}
 def __init_kafka_configs():
     kafka_configs['bootstrap_servers'] = config.kafka_bootstrap_servers.split(',')
     # process all kafka configs in env
-    kafka_keys = [key for key in os.environ.keys() if key.startswith('SW_AGENT_KAFKA_REPORTER_CONFIG_')]
+    kafka_keys = [key for key in os.environ.keys() if key.startswith('SW_KAFKA_REPORTER_CONFIG_')]
     for kafka_key in kafka_keys:
         key = kafka_key[25:]
         val = os.environ.get(kafka_key)
@@ -70,8 +70,8 @@ class KafkaServiceManagementClient(ServiceManagementClient):
 
     def send_instance_props(self):
         instance = InstanceProperties(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             properties=self.instance_properties,
         )
 
@@ -85,13 +85,13 @@ class KafkaServiceManagementClient(ServiceManagementClient):
         if logger_debug_enabled:
             logger.debug(
                 'service heart beats, [%s], [%s]',
-                config.service_name,
-                config.service_instance,
+                config.agent_name,
+                config.agent_instance_name,
             )
 
         instance_ping_pkg = InstancePingPkg(
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
         )
 
         key = bytes(instance_ping_pkg.serviceInstance, encoding='utf-8')
@@ -134,7 +134,7 @@ class KafkaMeterDataReportService(MeterReportService):
     def report(self, generator):
         collection = MeterDataCollection()
         collection.meterData.extend(list(generator))
-        key = bytes(config.service_instance, encoding='utf-8')
+        key = bytes(config.agent_instance_name, encoding='utf-8')
         value = collection.SerializeToString()
         self.producer.send(topic=self.topic, key=key, value=value)
 
diff --git a/skywalking/config.py b/skywalking/config.py
index 4cc97e0..67c5ac6 100644
--- a/skywalking/config.py
+++ b/skywalking/config.py
@@ -45,160 +45,163 @@ options = globals().copy()
 # BEGIN: Agent Core Configuration Options
 # The backend OAP server address, 11800 is default OAP gRPC port, 12800 is HTTP, Kafka ignores this option
 # and uses kafka_bootstrap_servers option. **This option should be changed accordingly with selected protocol**
-collector_address: str = os.getenv('SW_AGENT_COLLECTOR_ADDRESS', 'oap_host:oap_port')
+agent_collector_backend_services: str = os.getenv('SW_AGENT_COLLECTOR_BACKEND_SERVICES', 'oap_host:oap_port')
 # The protocol to communicate with the backend OAP, `http`, `grpc` or `kafka`, **we highly suggest using `grpc` in
 # production as it's well optimized than `http`**. The `kafka` protocol provides an alternative way to submit data to
 # the backend.
 protocol: str = os.getenv('SW_AGENT_PROTOCOL', 'grpc').lower()
 # The name of your awesome Python service
-service_name: str = os.getenv('SW_AGENT_SERVICE_NAME', 'Python Service Name')
+agent_name: str = os.getenv('SW_AGENT_NAME', 'Python Service Name')
 # The name of this particular awesome Python service instance
-service_instance: str = os.getenv('SW_AGENT_SERVICE_INSTANCE', str(uuid.uuid1()).replace('-', ''))
+agent_instance_name: str = os.getenv('SW_AGENT_INSTANCE_NAME', str(uuid.uuid1()).replace('-', ''))
 # The agent namespace of the Python service (available as tag and the suffix of service name)
-namespace: str = os.getenv('SW_AGENT_NAMESPACE', '')
+agent_namespace: str = os.getenv('SW_AGENT_NAMESPACE', '')
 # A list of host/port pairs to use for establishing the initial connection to your Kafka cluster.
 # It is in the form of host1:port1,host2:port2,... (used for Kafka reporter protocol)
-kafka_bootstrap_servers: str = os.getenv('SW_AGENT_KAFKA_BOOTSTRAP_SERVERS', 'localhost:9092')
+kafka_bootstrap_servers: str = os.getenv('SW_KAFKA_BOOTSTRAP_SERVERS', 'localhost:9092')
 # The kafka namespace specified by OAP side SW_NAMESPACE, prepends the following kafka topic names with a `-`.
-kafka_namespace: str = os.getenv('SW_AGENT_KAFKA_NAMESPACE', '')
+kafka_namespace: str = os.getenv('SW_KAFKA_NAMESPACE', '')
 # Specifying Kafka topic name for service instance reporting and registering, this should be in sync with OAP
-kafka_topic_management: str = os.getenv('SW_AGENT_KAFKA_TOPIC_MANAGEMENT', 'skywalking-managements')
+kafka_topic_management: str = os.getenv('SW_KAFKA_TOPIC_MANAGEMENT', 'skywalking-managements')
 # Specifying Kafka topic name for Tracing data, this should be in sync with OAP
-kafka_topic_segment: str = os.getenv('SW_AGENT_KAFKA_TOPIC_SEGMENT', 'skywalking-segments')
+kafka_topic_segment: str = os.getenv('SW_KAFKA_TOPIC_SEGMENT', 'skywalking-segments')
 # Specifying Kafka topic name for Log data, this should be in sync with OAP
-kafka_topic_log: str = os.getenv('SW_AGENT_KAFKA_TOPIC_LOG', 'skywalking-logs')
+kafka_topic_log: str = os.getenv('SW_KAFKA_TOPIC_LOG', 'skywalking-logs')
 # Specifying Kafka topic name for Meter data, this should be in sync with OAP
-kafka_topic_meter: str = os.getenv('SW_AGENT_KAFKA_TOPIC_METER', 'skywalking-meters')
+kafka_topic_meter: str = os.getenv('SW_KAFKA_TOPIC_METER', 'skywalking-meters')
 # The configs to init KafkaProducer, supports the basic arguments (whose type is either `str`, `bool`, or `int`) listed
 # [here](https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html#kafka.KafkaProducer)
-# This config only works from env variables, each one should be passed in `SW_AGENT_KAFKA_REPORTER_CONFIG_<KEY_NAME>`
-kafka_reporter_custom_configurations: str = os.getenv('SW_AGENT_KAFKA_REPORTER_CUSTOM_CONFIGURATIONS', '')
+# This config only works from env variables, each one should be passed in `SW_KAFKA_REPORTER_CONFIG_<KEY_NAME>`
+kafka_reporter_custom_configurations: str = os.getenv('SW_KAFKA_REPORTER_CUSTOM_CONFIGURATIONS', '')
 # Use TLS for communication with SkyWalking OAP (no cert required)
-force_tls: bool = os.getenv('SW_AGENT_FORCE_TLS', '').lower() == 'true'
+agent_force_tls: bool = os.getenv('SW_AGENT_FORCE_TLS', '').lower() == 'true'
 # The authentication token to verify that the agent is trusted by the backend OAP, as for how to configure the
 # backend, refer to [the yaml](https://github.com/apache/skywalking/blob/4f0f39ffccdc9b41049903cc540b8904f7c9728e/
 # oap-server/server-bootstrap/src/main/resources/application.yml#L155-L158).
-authentication: str = os.getenv('SW_AGENT_AUTHENTICATION', '')
+agent_authentication: str = os.getenv('SW_AGENT_AUTHENTICATION', '')
 # The level of agent self-logs, could be one of `CRITICAL`, `FATAL`, `ERROR`, `WARN`(`WARNING`), `INFO`, `DEBUG`.
 # Please turn on debug if an issue is encountered to find out what's going on
-logging_level: str = os.getenv('SW_AGENT_LOGGING_LEVEL', 'INFO')
+agent_logging_level: str = os.getenv('SW_AGENT_LOGGING_LEVEL', 'INFO')
 
 # BEGIN: Agent Core Danger Zone
 # The agent will exchange heartbeat message with SkyWalking OAP backend every `period` seconds
-heartbeat_period: int = int(os.getenv('SW_AGENT_HEARTBEAT_PERIOD', '30'))
+agent_collector_heartbeat_period: int = int(os.getenv('SW_AGENT_COLLECTOR_HEARTBEAT_PERIOD', '30'))
 # The agent will report service instance properties every
 # `factor * heartbeat period` seconds default: 10*30 = 300 seconds
-collector_properties_report_period_factor = int(os.getenv('SW_AGENT_COLLECTOR_PROPERTIES_REPORT_PERIOD_FACTOR', '10'))
+agent_collector_properties_report_period_factor = int(
+    os.getenv('SW_AGENT_COLLECTOR_PROPERTIES_REPORT_PERIOD_FACTOR', '10'))
 # A custom JSON string to be reported as service instance properties, e.g. `{"key": "value"}`
-instance_properties_json: str = os.getenv('SW_INSTANCE_PROPERTIES_JSON', '')
+agent_instance_properties_json: str = os.getenv('SW_AGENT_INSTANCE_PROPERTIES_JSON', '')
 # The agent will try to restart itself in any os.fork()-ed child process. Important Note: it's not suitable for
 # short-lived processes as each one will introduce overhead and create a new instance in SkyWalking dashboard
 # in format of `service_instance-child-<pid>` (TODO)
-experimental_fork_support: bool = os.getenv('SW_AGENT_EXPERIMENTAL_FORK_SUPPORT', '').lower() == 'true'
+agent_experimental_fork_support: bool = os.getenv('SW_AGENT_EXPERIMENTAL_FORK_SUPPORT', '').lower() == 'true'
 # DANGEROUS - This option controls the interval of each bulk report from telemetry data queues
 # Do not modify unless you have evaluated its impact given your service load.
-queue_timeout: int = int(os.getenv('SW_AGENT_QUEUE_TIMEOUT', '1'))
+agent_queue_timeout: int = int(os.getenv('SW_AGENT_QUEUE_TIMEOUT', '1'))
 
 # BEGIN: SW_PYTHON Auto Instrumentation CLI
 # Special: can only be passed via environment. This config controls the child process agent bootstrap behavior in
 # `sw-python` CLI, if set to `False`, a valid child process will not boot up a SkyWalking Agent. Please refer to the
 # [CLI Guide](CLI.md) for details.
-sw_python_bootstrap_propagate = os.getenv('SW_AGENT_SW_PYTHON_BOOTSTRAP_PROPAGATE', '').lower() == 'true'
+agent_sw_python_bootstrap_propagate = os.getenv('SW_AGENT_SW_PYTHON_BOOTSTRAP_PROPAGATE', '').lower() == 'true'
 
 # BEGIN: Trace Reporter Configurations
 # The maximum queue backlog size for sending the segment data to backend, segments beyond this are silently dropped
-trace_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_TRACE_REPORTER_MAX_BUFFER_SIZE', '10000'))
+agent_trace_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_TRACE_REPORTER_MAX_BUFFER_SIZE', '10000'))
 # You can setup multiple URL path patterns, The endpoints match these patterns wouldn't be traced. the current
 # matching rules follow Ant Path match style , like /path/*, /path/**, /path/?.
-trace_ignore_path: str = os.getenv('SW_AGENT_TRACE_IGNORE_PATH', '')
+agent_trace_ignore_path: str = os.getenv('SW_AGENT_TRACE_IGNORE_PATH', '')
 # If the operation name of the first span is included in this set, this segment should be ignored.
-ignore_suffix: str = os.getenv('SW_AGENT_IGNORE_SUFFIX', '.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,'
-                                                         '.mp4,.html,.svg ')
+agent_ignore_suffix: str = os.getenv('SW_AGENT_IGNORE_SUFFIX', '.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,'
+                                                               '.mp4,.html,.svg ')
 # Max element count of the correlation context.
-correlation_element_max_number: int = int(os.getenv('SW_AGENT_CORRELATION_ELEMENT_MAX_NUMBER', '3'))
+correlation_element_max_number: int = int(os.getenv('SW_CORRELATION_ELEMENT_MAX_NUMBER', '3'))
 # Max value length of correlation context element.
-correlation_value_max_length: int = int(os.getenv('SW_AGENT_CORRELATION_VALUE_MAX_LENGTH', '128'))
+correlation_value_max_length: int = int(os.getenv('SW_CORRELATION_VALUE_MAX_LENGTH', '128'))
 
 # BEGIN: Profiling Configurations
 # If `True`, Python agent will enable profiler when user create a new profiling task.
-profiler_active: bool = os.getenv('SW_AGENT_PROFILER_ACTIVE', '').lower() != 'false'
+agent_profile_active: bool = os.getenv('SW_AGENT_PROFILE_ACTIVE', '').lower() != 'false'
 # The number of seconds between two profile task query.
-get_profile_task_interval: int = int(os.getenv('SW_AGENT_GET_PROFILE_TASK_INTERVAL', '20'))
+agent_collector_get_profile_task_interval: int = int(os.getenv('SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL', '20'))
 # The number of parallel monitor segment count.
-profile_max_parallel: int = int(os.getenv('SW_AGENT_PROFILE_MAX_PARALLEL', '5'))
+agent_profile_max_parallel: int = int(os.getenv('SW_AGENT_PROFILE_MAX_PARALLEL', '5'))
 # The maximum monitor segment time(minutes), if current segment monitor time out of limit, then stop it.
-profile_duration: int = int(os.getenv('SW_AGENT_PROFILE_DURATION', '10'))
+agent_profile_duration: int = int(os.getenv('SW_AGENT_PROFILE_DURATION', '10'))
 # The number of max dump thread stack depth
-profile_dump_max_stack_depth: int = int(os.getenv('SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH', '500'))
+agent_profile_dump_max_stack_depth: int = int(os.getenv('SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH', '500'))
 # The number of snapshot transport to backend buffer size
-profile_snapshot_transport_buffer_size: int = int(os.getenv('SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE', '50'))
+agent_profile_snapshot_transport_buffer_size: int = int(
+    os.getenv('SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE', '50'))
 
 # BEGIN: Log Reporter Configurations
 # If `True`, Python agent will report collected logs to the OAP or Satellite. Otherwise, it disables the feature.
-log_reporter_active: bool = os.getenv('SW_AGENT_LOG_REPORTER_ACTIVE', '').lower() != 'false'
+agent_log_reporter_active: bool = os.getenv('SW_AGENT_LOG_REPORTER_ACTIVE', '').lower() != 'false'
 # If `True`, Python agent will filter out HTTP basic auth information from log records. By default, it disables the
 # feature due to potential performance impact brought by regular expression
-log_reporter_safe_mode: bool = os.getenv('SW_AGENT_LOG_REPORTER_SAFE_MODE', '').lower() == 'true'
+agent_log_reporter_safe_mode: bool = os.getenv('SW_AGENT_LOG_REPORTER_SAFE_MODE', '').lower() == 'true'
 # The maximum queue backlog size for sending log data to backend, logs beyond this are silently dropped.
-log_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_LOG_REPORTER_MAX_BUFFER_SIZE', '10000'))
+agent_log_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_LOG_REPORTER_MAX_BUFFER_SIZE', '10000'))
 # This config specifies the logger levels of concern, any logs with a level below the config will be ignored.
-log_reporter_level: str = os.getenv('SW_AGENT_LOG_REPORTER_LEVEL', 'WARNING')
+agent_log_reporter_level: str = os.getenv('SW_AGENT_LOG_REPORTER_LEVEL', 'WARNING')
 # This config customizes whether to ignore the application-defined logger filters, if `True`, all logs are reported
 # disregarding any filter rules.
-log_reporter_ignore_filter: bool = os.getenv('SW_AGENT_LOG_REPORTER_IGNORE_FILTER', '').lower() == 'true'
+agent_log_reporter_ignore_filter: bool = os.getenv('SW_AGENT_LOG_REPORTER_IGNORE_FILTER', '').lower() == 'true'
 # If `True`, the log reporter will transmit the logs as formatted. Otherwise, puts logRecord.msg and logRecord.args
 # into message content and tags(`argument.n`), respectively. Along with an `exception` tag if an exception was raised.
 # Only applies to logging module.
-log_reporter_formatted: bool = os.getenv('SW_AGENT_LOG_REPORTER_FORMATTED', '').lower() != 'false'
+agent_log_reporter_formatted: bool = os.getenv('SW_AGENT_LOG_REPORTER_FORMATTED', '').lower() != 'false'
 # The log reporter formats the logRecord message based on the layout given.
 # Only applies to logging module.
-log_reporter_layout: str = os.getenv('SW_AGENT_LOG_REPORTER_LAYOUT',
-                                     '%(asctime)s [%(threadName)s] %(levelname)s %(name)s - %(message)s')
+agent_log_reporter_layout: str = os.getenv('SW_AGENT_LOG_REPORTER_LAYOUT',
+                                           '%(asctime)s [%(threadName)s] %(levelname)s %(name)s - %(message)s')
 # This configuration is shared by log reporter and tracer.
 # This config limits agent to report up to `limit` stacktrace, please refer to [Python traceback](
 # https://docs.python.org/3/library/traceback.html#traceback.print_tb) for more explanations.
-cause_exception_depth: int = int(os.getenv('SW_AGENT_CAUSE_EXCEPTION_DEPTH', '10'))
+agent_cause_exception_depth: int = int(os.getenv('SW_AGENT_CAUSE_EXCEPTION_DEPTH', '10'))
 
 # BEGIN: Meter Reporter Configurations
 # If `True`, Python agent will report collected meters to the OAP or Satellite. Otherwise, it disables the feature.
-meter_reporter_active: bool = os.getenv('SW_AGENT_METER_REPORTER_ACTIVE', '').lower() != 'false'
+agent_meter_reporter_active: bool = os.getenv('SW_AGENT_METER_REPORTER_ACTIVE', '').lower() != 'false'
 # The maximum queue backlog size for sending meter data to backend, meters beyond this are silently dropped.
-meter_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_METER_REPORTER_MAX_BUFFER_SIZE', '10000'))
+agent_meter_reporter_max_buffer_size: int = int(os.getenv('SW_AGENT_METER_REPORTER_MAX_BUFFER_SIZE', '10000'))
 # The interval in seconds between each meter data report
-meter_reporter_period: int = int(os.getenv('SW_AGENT_METER_REPORTER_PERIOD', '20'))
+agent_meter_reporter_period: int = int(os.getenv('SW_AGENT_METER_REPORTER_PERIOD', '20'))
 # If `True`, Python agent will report collected Python Virtual Machine (PVM) meters to the OAP or Satellite.
 # Otherwise, it disables the feature.
-pvm_meter_reporter_active: bool = os.getenv('SW_AGENT_PVM_METER_REPORTER_ACTIVE', '').lower() != 'false'
+agent_pvm_meter_reporter_active: bool = os.getenv('SW_AGENT_PVM_METER_REPORTER_ACTIVE', '').lower() != 'false'
 
 # BEGIN: Plugin Related configurations
 # The name patterns in comma-separated pattern, plugins whose name matches one of the pattern won't be installed
-disable_plugins: List[str] = os.getenv('SW_AGENT_DISABLE_PLUGINS', '').split(',')
+agent_disable_plugins: List[str] = os.getenv('SW_AGENT_DISABLE_PLUGINS', '').split(',')
 # When `COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the OAP backend, use negative
 # values to keep and send the complete parameters, NB. this config item is added for the sake of performance.
-http_params_length_threshold: int = int(os.getenv('SW_AGENT_HTTP_PARAMS_LENGTH_THRESHOLD', '1024'))
+plugin_http_http_params_length_threshold: int = int(
+    os.getenv('SW_PLUGIN_HTTP_HTTP_PARAMS_LENGTH_THRESHOLD', '1024'))
 # Comma-delimited list of http methods to ignore (GET, POST, HEAD, OPTIONS, etc...)
-http_ignore_method: str = os.getenv('SW_AGENT_HTTP_IGNORE_METHOD', '').upper()
+plugin_http_ignore_method: str = os.getenv('SW_PLUGIN_HTTP_IGNORE_METHOD', '').upper()
 # The maximum length of the collected parameter, parameters longer than the specified length will be truncated,
 # length 0 turns off parameter tracing
-sql_parameters_length: int = int(os.getenv('SW_AGENT_SQL_PARAMETERS_LENGTH', '0'))
+plugin_sql_parameters_max_length: int = int(os.getenv('SW_PLUGIN_SQL_PARAMETERS_MAX_LENGTH', '0'))
 # Indicates whether to collect the filters of pymongo
-pymongo_trace_parameters: bool = os.getenv('SW_AGENT_PYMONGO_TRACE_PARAMETERS', '').lower() == 'true'
+plugin_pymongo_trace_parameters: bool = os.getenv('SW_PLUGIN_PYMONGO_TRACE_PARAMETERS', '').lower() == 'true'
 # The maximum length of the collected filters, filters longer than the specified length will be truncated
-pymongo_parameters_max_length: int = int(os.getenv('SW_AGENT_PYMONGO_PARAMETERS_MAX_LENGTH', '512'))
+plugin_pymongo_parameters_max_length: int = int(os.getenv('SW_PLUGIN_PYMONGO_PARAMETERS_MAX_LENGTH', '512'))
 # If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false
-elasticsearch_trace_dsl: bool = os.getenv('SW_AGENT_ELASTICSEARCH_TRACE_DSL', '').lower() == 'true'
+plugin_elasticsearch_trace_dsl: bool = os.getenv('SW_PLUGIN_ELASTICSEARCH_TRACE_DSL', '').lower() == 'true'
 # This config item controls that whether the Flask plugin should collect the parameters of the request.
-flask_collect_http_params: bool = os.getenv('SW_AGENT_FLASK_COLLECT_HTTP_PARAMS', '').lower() == 'true'
+plugin_flask_collect_http_params: bool = os.getenv('SW_PLUGIN_FLASK_COLLECT_HTTP_PARAMS', '').lower() == 'true'
 # This config item controls that whether the Sanic plugin should collect the parameters of the request.
-sanic_collect_http_params: bool = os.getenv('SW_AGENT_SANIC_COLLECT_HTTP_PARAMS', '').lower() == 'true'
+plugin_sanic_collect_http_params: bool = os.getenv('SW_PLUGIN_SANIC_COLLECT_HTTP_PARAMS', '').lower() == 'true'
 # This config item controls that whether the Django plugin should collect the parameters of the request.
-django_collect_http_params: bool = os.getenv('SW_AGENT_DJANGO_COLLECT_HTTP_PARAMS', '').lower() == 'true'
+plugin_django_collect_http_params: bool = os.getenv('SW_PLUGIN_DJANGO_COLLECT_HTTP_PARAMS', '').lower() == 'true'
 # This config item controls that whether the FastAPI plugin should collect the parameters of the request.
-fastapi_collect_http_params: bool = os.getenv('SW_AGENT_FASTAPI_COLLECT_HTTP_PARAMS', '').lower() == 'true'
+plugin_fastapi_collect_http_params: bool = os.getenv('SW_PLUGIN_FASTAPI_COLLECT_HTTP_PARAMS', '').lower() == 'true'
 # This config item controls that whether the Bottle plugin should collect the parameters of the request.
-bottle_collect_http_params: bool = os.getenv('SW_AGENT_BOTTLE_COLLECT_HTTP_PARAMS', '').lower() == 'true'
+plugin_bottle_collect_http_params: bool = os.getenv('SW_PLUGIN_BOTTLE_COLLECT_HTTP_PARAMS', '').lower() == 'true'
 # The maximum length of `celery` functions parameters, longer than this will be truncated, 0 turns off
-celery_parameters_length: int = int(os.getenv('SW_AGENT_CELERY_PARAMETERS_LENGTH', '512'))
+plugin_celery_parameters_length: int = int(os.getenv('SW_PLUGIN_CELERY_PARAMETERS_LENGTH', '512'))
 
 # THIS MUST FOLLOW DIRECTLY AFTER LIST OF CONFIG OPTIONS!
 options = [key for key in globals() if key not in options]  # THIS MUST FOLLOW DIRECTLY AFTER LIST OF CONFIG OPTIONS!
@@ -228,15 +231,15 @@ def finalize_feature() -> None:
     """
     Examine reporter configuration and warn users about the incompatibility of protocol vs features
     """
-    global profiler_active, meter_reporter_active
+    global agent_profile_active, agent_meter_reporter_active
 
-    if protocol == 'http' and (profiler_active or meter_reporter_active):
-        profiler_active = False
-        meter_reporter_active = False
+    if protocol == 'http' and (agent_profile_active or agent_meter_reporter_active):
+        agent_profile_active = False
+        agent_meter_reporter_active = False
         warnings.warn('HTTP protocol does not support meter reporter and profiler. Please use gRPC protocol if you '
                       'would like to use both features.')
-    elif protocol == 'kafka' and profiler_active:
-        profiler_active = False
+    elif protocol == 'kafka' and agent_profile_active:
+        agent_profile_active = False
         warnings.warn('Kafka protocol does not support profiler. Please use gRPC protocol if you would like to use '
                       'this feature.')
 
@@ -248,9 +251,9 @@ def finalize_name() -> None:
     TODO: add cluster concept
     Ref https://github.com/apache/skywalking-java/pull/123
     """
-    global service_name
-    if namespace:
-        service_name = f'{service_name}|{namespace}'
+    global agent_name
+    if agent_namespace:
+        agent_name = f'{agent_name}|{agent_namespace}'
 
     global kafka_topic_management, kafka_topic_meter, kafka_topic_log, kafka_topic_segment
     if kafka_namespace:
@@ -265,8 +268,8 @@ def finalize_regex() -> None:
     Build path matchers based on user provided regex expressions
     """
     reesc = re.compile(r'([.*+?^=!:${}()|\[\]\\])')
-    suffix = r'^.+(?:' + '|'.join(reesc.sub(r'\\\1', s.strip()) for s in ignore_suffix.split(',')) + ')$'
-    method = r'^' + '|'.join(s.strip() for s in http_ignore_method.split(',')) + '$'
+    suffix = r'^.+(?:' + '|'.join(reesc.sub(r'\\\1', s.strip()) for s in agent_ignore_suffix.split(',')) + ')$'
+    method = r'^' + '|'.join(s.strip() for s in plugin_http_ignore_method.split(',')) + '$'
     path = '^(?:' + \
            '|'.join(  # replaces ","
                '/(?:[^/]*/)*'.join(  # replaces "/**/"
@@ -277,7 +280,7 @@ def finalize_regex() -> None:
                            ) for p3 in p2.split('*')
                        ) for p2 in p1.strip().split('**')
                    ) for p1 in p0.split('/**/')
-               ) for p0 in trace_ignore_path.split(',')
+               ) for p0 in agent_trace_ignore_path.split(',')
            ) + ')$'
 
     global RE_IGNORE_PATH, RE_HTTP_IGNORE_METHOD
diff --git a/skywalking/log/sw_logging.py b/skywalking/log/sw_logging.py
index 516d850..3c0e99d 100644
--- a/skywalking/log/sw_logging.py
+++ b/skywalking/log/sw_logging.py
@@ -28,13 +28,13 @@ from skywalking.utils.filter import sw_traceback, sw_filter
 def install():
     from logging import Logger
 
-    layout = config.log_reporter_layout  # type: str
+    layout = config.agent_log_reporter_layout  # type: str
     if layout:
         from skywalking.log.formatter import SWFormatter
-        sw_formatter = SWFormatter(fmt=layout, tb_limit=config.cause_exception_depth)
+        sw_formatter = SWFormatter(fmt=layout, tb_limit=config.agent_cause_exception_depth)
 
     _handle = Logger.handle
-    log_reporter_level = logging.getLevelName(config.log_reporter_level)  # type: int
+    log_reporter_level = logging.getLevelName(config.agent_log_reporter_level)  # type: int
 
     def _sw_handle(self, record):
         _handle(self=self, record=record)
@@ -48,7 +48,7 @@ def install():
         if record.levelno < log_reporter_level:
             return
 
-        if not config.log_reporter_ignore_filter and not self.filter(record):  # ignore filtered logs
+        if not config.agent_log_reporter_ignore_filter and not self.filter(record):  # ignore filtered logs
             return
 
         def build_log_tags() -> LogTags:
@@ -60,7 +60,7 @@ def install():
             l_tags = LogTags()
             l_tags.data.extend(core_tags)
 
-            if config.log_reporter_formatted:
+            if config.agent_log_reporter_formatted:
                 return l_tags
 
             for i, arg in enumerate(record.args):
@@ -89,8 +89,8 @@ def install():
 
         log_data = LogData(
             timestamp=round(record.created * 1000),
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             body=LogDataBody(
                 type='text',
                 text=TextLog(
@@ -116,7 +116,7 @@ def install():
     Logger.handle = _sw_handle
 
     def transform(record) -> str:
-        if config.log_reporter_formatted:
+        if config.agent_log_reporter_formatted:
             if layout:
                 return sw_formatter.format(record=record)
             newline = '\n'
diff --git a/skywalking/loggings.py b/skywalking/loggings.py
index 93e1bdc..3955d7d 100644
--- a/skywalking/loggings.py
+++ b/skywalking/loggings.py
@@ -39,5 +39,5 @@ logger = getLogger('skywalking')
 def init():
     global logger_debug_enabled
     logging.addLevelName(logging.CRITICAL + 10, 'OFF')
-    logger.setLevel(logging.getLevelName(config.logging_level))
+    logger.setLevel(logging.getLevelName(config.agent_logging_level))
     logger_debug_enabled = logger.isEnabledFor(logging.DEBUG)
diff --git a/skywalking/meter/meter.py b/skywalking/meter/meter.py
index f8eacd1..8feec19 100644
--- a/skywalking/meter/meter.py
+++ b/skywalking/meter/meter.py
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-
+import typing
 from abc import ABC, abstractmethod
 from enum import Enum
 from skywalking.protocol.language_agent.Meter_pb2 import Label
@@ -110,6 +110,7 @@ class BaseMeter(ABC):
         def __init__(self, name: str, tags=None):
             # Derived Builder should instantiate its corresponding meter here.
             # self.meter = BaseMeter(name, tags)
+            self.meter: typing.Optional[BaseMeter] = None
             pass
 
         def tag(self, name: str, value):
diff --git a/skywalking/meter/meter_service.py b/skywalking/meter/meter_service.py
index fc7608f..67ad85e 100644
--- a/skywalking/meter/meter_service.py
+++ b/skywalking/meter/meter_service.py
@@ -22,7 +22,6 @@ from skywalking import config
 from skywalking import agent
 from skywalking.meter.meter import BaseMeter
 from skywalking.utils.time import current_milli_time
-from skywalking.config import meter_reporter_period
 
 
 class MeterService(Thread):
@@ -40,8 +39,8 @@ class MeterService(Thread):
 
         def archive(meterdata):
             meterdata = meterdata.transform()
-            meterdata.service = config.service_name
-            meterdata.serviceInstance = config.service_instance
+            meterdata.service = config.agent_name
+            meterdata.serviceInstance = config.agent_instance_name
             meterdata.timestamp = current_milli_time()
             agent.archive_meter(meterdata)
 
@@ -50,5 +49,5 @@ class MeterService(Thread):
 
     def run(self):
         while True:
-            time.sleep(meter_reporter_period)
+            time.sleep(config.agent_meter_reporter_period)
             self.send()
diff --git a/skywalking/plugins/__init__.py b/skywalking/plugins/__init__.py
index 55b22d3..af2a426 100644
--- a/skywalking/plugins/__init__.py
+++ b/skywalking/plugins/__init__.py
@@ -31,7 +31,7 @@ from skywalking.utils.exception import VersionRuleException
 
 
 def install():
-    disable_patterns = config.disable_plugins
+    disable_patterns = config.agent_disable_plugins
     if isinstance(disable_patterns, str):
         disable_patterns = [re.compile(p.strip()) for p in disable_patterns.split(',') if p.strip()]
     else:
diff --git a/skywalking/plugins/sw_asyncpg.py b/skywalking/plugins/sw_asyncpg.py
index 2a0e21e..7daa857 100644
--- a/skywalking/plugins/sw_asyncpg.py
+++ b/skywalking/plugins/sw_asyncpg.py
@@ -48,17 +48,17 @@ def install():
             span.tag(TagDbInstance(getattr(proto, '_database', '<unavailable>')))
             span.tag(TagDbStatement(query))
 
-            if config.sql_parameters_length and params is not None:
+            if config.plugin_sql_parameters_max_length and params is not None:
                 if not is_many:
                     text = ','.join(str(v) for v in params)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
                 else:
-                    max_len = config.sql_parameters_length
+                    max_len = config.plugin_sql_parameters_max_length
                     total_len = 0
                     text_list = []
 
diff --git a/skywalking/plugins/sw_bottle.py b/skywalking/plugins/sw_bottle.py
index 9c628e1..0fe27a9 100644
--- a/skywalking/plugins/sw_bottle.py
+++ b/skywalking/plugins/sw_bottle.py
@@ -69,8 +69,8 @@ def install():
             span.tag(TagHttpMethod(method))
             span.tag(TagHttpURL(request.url.split('?')[0]))
 
-            if config.bottle_collect_http_params and request.query:
-                span.tag(TagHttpParams(params_tostring(request.query)[0:config.http_params_length_threshold]))
+            if config.plugin_bottle_collect_http_params and request.query:
+                span.tag(TagHttpParams(params_tostring(request.query)[0:config.plugin_http_http_params_length_threshold]))
 
             res = _app_call(self, environ, start_response)
 
diff --git a/skywalking/plugins/sw_celery.py b/skywalking/plugins/sw_celery.py
index 5e7e2e2..90b9fa7 100644
--- a/skywalking/plugins/sw_celery.py
+++ b/skywalking/plugins/sw_celery.py
@@ -59,8 +59,8 @@ def install():
             # span.tag(TagMqTopic(exchange))
             # span.tag(TagMqQueue(queue))
 
-            if config.celery_parameters_length:
-                params = f'*{args}, **{kwargs}'[:config.celery_parameters_length]
+            if config.plugin_celery_parameters_length:
+                params = f'*{args}, **{kwargs}'[:config.plugin_celery_parameters_length]
                 span.tag(TagCeleryParameters(params))
 
             options = {**options}
@@ -109,8 +109,8 @@ def install():
                 # span.tag(TagMqTopic(exchange))
                 # span.tag(TagMqQueue(queue))
 
-                if config.celery_parameters_length:
-                    params = f'*{args}, **{kwargs}'[:config.celery_parameters_length]
+                if config.plugin_celery_parameters_length:
+                    params = f'*{args}, **{kwargs}'[:config.plugin_celery_parameters_length]
                     span.tag(TagCeleryParameters(params))
 
                 return _fun(*args, **kwargs)
diff --git a/skywalking/plugins/sw_django.py b/skywalking/plugins/sw_django.py
index efe8bcd..57759fa 100644
--- a/skywalking/plugins/sw_django.py
+++ b/skywalking/plugins/sw_django.py
@@ -66,8 +66,8 @@ def install():
             span.tag(TagHttpURL(request.build_absolute_uri().split('?')[0]))
 
             # you can get request parameters by `request.GET` even though client are using POST or other methods
-            if config.django_collect_http_params and request.GET:
-                span.tag(TagHttpParams(params_tostring(request.GET)[0:config.http_params_length_threshold]))
+            if config.plugin_django_collect_http_params and request.GET:
+                span.tag(TagHttpParams(params_tostring(request.GET)[0:config.plugin_http_http_params_length_threshold]))
 
             resp = _get_response(this, request)
             span.tag(TagHttpStatusCode(resp.status_code))
diff --git a/skywalking/plugins/sw_elasticsearch.py b/skywalking/plugins/sw_elasticsearch.py
index 7e1a1be..144b8dd 100644
--- a/skywalking/plugins/sw_elasticsearch.py
+++ b/skywalking/plugins/sw_elasticsearch.py
@@ -41,7 +41,7 @@ def install():
             res = _perform_request(this, method, url, headers=headers, params=params, body=body)
 
             span.tag(TagDbType('Elasticsearch'))
-            if config.elasticsearch_trace_dsl:
+            if config.plugin_elasticsearch_trace_dsl:
                 span.tag(TagDbStatement('' if body is None else body))
 
             return res
diff --git a/skywalking/plugins/sw_fastapi.py b/skywalking/plugins/sw_fastapi.py
index 9c2f40b..45ce504 100644
--- a/skywalking/plugins/sw_fastapi.py
+++ b/skywalking/plugins/sw_fastapi.py
@@ -59,8 +59,8 @@ def install():
             span.peer = f'{req.client.host}:{req.client.port}'
             span.tag(TagHttpMethod(method))
             span.tag(TagHttpURL(str(req.url).split('?')[0]))
-            if config.fastapi_collect_http_params and req.query_params:
-                span.tag(TagHttpParams(params_tostring(req.query_params)[0:config.http_params_length_threshold]))
+            if config.plugin_fastapi_collect_http_params and req.query_params:
+                span.tag(TagHttpParams(params_tostring(req.query_params)[0:config.plugin_http_http_params_length_threshold]))
 
             status_code = 500
 
diff --git a/skywalking/plugins/sw_flask.py b/skywalking/plugins/sw_flask.py
index 1edac53..d1dec4b 100644
--- a/skywalking/plugins/sw_flask.py
+++ b/skywalking/plugins/sw_flask.py
@@ -60,8 +60,8 @@ def install():
                 span.peer = f"{req.environ['REMOTE_ADDR']}:{req.environ['REMOTE_PORT']}"
             span.tag(TagHttpMethod(method))
             span.tag(TagHttpURL(req.url.split('?')[0]))
-            if config.flask_collect_http_params and req.values:
-                span.tag(TagHttpParams(params_tostring(req.values)[0:config.http_params_length_threshold]))
+            if config.plugin_flask_collect_http_params and req.values:
+                span.tag(TagHttpParams(params_tostring(req.values)[0:config.plugin_http_http_params_length_threshold]))
             resp = _full_dispatch_request(this)
 
             if resp.status_code >= 400:
diff --git a/skywalking/plugins/sw_loguru.py b/skywalking/plugins/sw_loguru.py
index f3a94d2..9dd8c2c 100644
--- a/skywalking/plugins/sw_loguru.py
+++ b/skywalking/plugins/sw_loguru.py
@@ -47,7 +47,7 @@ def install():
     from types import MethodType
 
     _log = logger._log
-    log_reporter_level = logging.getLevelName(config.log_reporter_level)  # type: int
+    log_reporter_level = logging.getLevelName(config.agent_log_reporter_level)  # type: int
 
     def gen_record(self, level_id, static_level_no, from_decorator, options, message, args, kwargs):
         """ Generate log record as loguru.logger._log """
@@ -159,7 +159,7 @@ def install():
         if record['level'].no < log_reporter_level:
             return
 
-        if not config.log_reporter_ignore_filter and record['level'].no < core.min_level:  # ignore filtered logs
+        if not config.agent_log_reporter_ignore_filter and record['level'].no < core.min_level:  # ignore filtered logs
             return
 
         # loguru has only one logger. Use tags referring Python-Agent doc
@@ -174,7 +174,7 @@ def install():
         exception = record['exception']
         if exception:
             stack_trace = ''.join(traceback.format_exception(exception.type, exception.value, exception.traceback,
-                                                             limit=config.cause_exception_depth))
+                                                             limit=config.agent_cause_exception_depth))
             tags.data.append(KeyStringValuePair(key='exception',
                                                 value=sw_filter(stack_trace)
                                                 ))  # \n doesn't work in tags for UI
@@ -196,8 +196,8 @@ def install():
 
         log_data = LogData(
             timestamp=round(record['time'].timestamp() * 1000),
-            service=config.service_name,
-            serviceInstance=config.service_instance,
+            service=config.agent_name,
+            serviceInstance=config.agent_instance_name,
             body=LogDataBody(
                 type='text',
                 text=TextLog(
diff --git a/skywalking/plugins/sw_mysqlclient.py b/skywalking/plugins/sw_mysqlclient.py
index 9650b0d..9adbc5b 100644
--- a/skywalking/plugins/sw_mysqlclient.py
+++ b/skywalking/plugins/sw_mysqlclient.py
@@ -61,9 +61,9 @@ def install():
                 span.tag(TagDbInstance((self.connection.db or '')))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and args:
+                if config.plugin_sql_parameters_max_length and args:
                     parameter = ','.join([str(arg) for arg in args])
-                    max_len = config.sql_parameters_length
+                    max_len = config.plugin_sql_parameters_max_length
                     parameter = f'{parameter[0:max_len]}...' if len(parameter) > max_len else parameter
                     span.tag(TagDbSqlParameters(f'[{parameter}]'))
 
diff --git a/skywalking/plugins/sw_psycopg.py b/skywalking/plugins/sw_psycopg.py
index 15defb3..e524c2c 100644
--- a/skywalking/plugins/sw_psycopg.py
+++ b/skywalking/plugins/sw_psycopg.py
@@ -56,11 +56,11 @@ def install_sync():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and vars is not None:
+                if config.plugin_sql_parameters_max_length and vars is not None:
                     text = ','.join(str(v) for v in vars)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
@@ -79,8 +79,8 @@ def install_sync():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length:
-                    max_len = config.sql_parameters_length
+                if config.plugin_sql_parameters_max_length:
+                    max_len = config.plugin_sql_parameters_max_length
                     total_len = 0
                     text_list = []
 
@@ -112,11 +112,11 @@ def install_sync():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and vars is not None:
+                if config.plugin_sql_parameters_max_length and vars is not None:
                     text = ','.join(str(v) for v in vars)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
@@ -171,11 +171,11 @@ def install_async():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and vars is not None:
+                if config.plugin_sql_parameters_max_length and vars is not None:
                     text = ','.join(str(v) for v in vars)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
@@ -194,8 +194,8 @@ def install_async():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length:
-                    max_len = config.sql_parameters_length
+                if config.plugin_sql_parameters_max_length:
+                    max_len = config.plugin_sql_parameters_max_length
                     total_len = 0
                     text_list = []
 
@@ -227,11 +227,11 @@ def install_async():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and vars is not None:
+                if config.plugin_sql_parameters_max_length and vars is not None:
                     text = ','.join(str(v) for v in vars)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
diff --git a/skywalking/plugins/sw_psycopg2.py b/skywalking/plugins/sw_psycopg2.py
index 8975756..4424b58 100644
--- a/skywalking/plugins/sw_psycopg2.py
+++ b/skywalking/plugins/sw_psycopg2.py
@@ -54,11 +54,11 @@ def install():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length and vars is not None:
+                if config.plugin_sql_parameters_max_length and vars is not None:
                     text = ','.join(str(v) for v in vars)
 
-                    if len(text) > config.sql_parameters_length:
-                        text = f'{text[:config.sql_parameters_length]}...'
+                    if len(text) > config.plugin_sql_parameters_max_length:
+                        text = f'{text[:config.plugin_sql_parameters_max_length]}...'
 
                     span.tag(TagDbSqlParameters(f'[{text}]'))
 
@@ -76,8 +76,8 @@ def install():
                 span.tag(TagDbInstance(dsn['dbname']))
                 span.tag(TagDbStatement(query))
 
-                if config.sql_parameters_length:
-                    max_len = config.sql_parameters_length
+                if config.plugin_sql_parameters_max_length:
+                    max_len = config.plugin_sql_parameters_max_length
                     total_len = 0
                     text_list = []
 
diff --git a/skywalking/plugins/sw_pymongo.py b/skywalking/plugins/sw_pymongo.py
index c4fd1a8..0330960 100644
--- a/skywalking/plugins/sw_pymongo.py
+++ b/skywalking/plugins/sw_pymongo.py
@@ -67,10 +67,10 @@ def inject_socket_info(SocketInfo): # noqa
                 span.tag(TagDbType('MongoDB'))
                 span.tag(TagDbInstance(dbname))
 
-                if config.pymongo_trace_parameters:
+                if config.plugin_pymongo_trace_parameters:
                     # get filters
                     filters = _get_filter(operation, spec)
-                    max_len = config.pymongo_parameters_max_length
+                    max_len = config.plugin_pymongo_parameters_max_length
                     filters = f'{filters[0:max_len]}...' if len(filters) > max_len else filters
                     span.tag(TagDbStatement(filters))
 
@@ -116,7 +116,7 @@ def inject_bulk_write(_Bulk, bulk_op_map): # noqa
 
             span.tag(TagDbType('MongoDB'))
             span.tag(TagDbInstance(this.collection.database.name))
-            if config.pymongo_trace_parameters:
+            if config.plugin_pymongo_trace_parameters:
                 filters = ''
                 bulk_ops = this.ops
                 for bulk_op in bulk_ops:
@@ -124,7 +124,7 @@ def inject_bulk_write(_Bulk, bulk_op_map): # noqa
                     _filter = f'{opname} {str(bulk_op[1])}'
                     filters = f'{filters + _filter} '
 
-                max_len = config.pymongo_parameters_max_length
+                max_len = config.plugin_pymongo_parameters_max_length
                 filters = f'{filters[0:max_len]}...' if len(filters) > max_len else filters
                 span.tag(TagDbStatement(filters))
 
@@ -152,9 +152,9 @@ def inject_cursor(Cursor): # noqa
             span.tag(TagDbType('MongoDB'))
             span.tag(TagDbInstance(this.collection.database.name))
 
-            if config.pymongo_trace_parameters:
+            if config.plugin_pymongo_trace_parameters:
                 filters = f'find {str(operation.spec)}'
-                max_len = config.pymongo_parameters_max_length
+                max_len = config.plugin_pymongo_parameters_max_length
                 filters = f'{filters[0:max_len]}...' if len(filters) > max_len else filters
                 span.tag(TagDbStatement(filters))
 
diff --git a/skywalking/plugins/sw_pymysql.py b/skywalking/plugins/sw_pymysql.py
index be27aca..d813760 100644
--- a/skywalking/plugins/sw_pymysql.py
+++ b/skywalking/plugins/sw_pymysql.py
@@ -45,9 +45,9 @@ def install():
             span.tag(TagDbInstance((this.connection.db or b'').decode('utf-8')))
             span.tag(TagDbStatement(query))
 
-            if config.sql_parameters_length and args:
+            if config.plugin_sql_parameters_max_length and args:
                 parameter = ','.join([str(arg) for arg in args])
-                max_len = config.sql_parameters_length
+                max_len = config.plugin_sql_parameters_max_length
                 parameter = f'{parameter[0:max_len]}...' if len(parameter) > max_len else parameter
                 span.tag(TagDbSqlParameters(f'[{parameter}]'))
 
diff --git a/skywalking/plugins/sw_requests.py b/skywalking/plugins/sw_requests.py
index d7cf541..743bb32 100644
--- a/skywalking/plugins/sw_requests.py
+++ b/skywalking/plugins/sw_requests.py
@@ -43,7 +43,7 @@ def install():
         url_param = sw_urlparse(url)
 
         # ignore trace skywalking self request
-        if config.protocol == 'http' and config.collector_address.rstrip('/').endswith(url_param.netloc):
+        if config.protocol == 'http' and config.agent_collector_backend_services.rstrip('/').endswith(url_param.netloc):
             return _request(this, method, url, params, data, headers, cookies, files, auth, timeout,
                             allow_redirects,
                             proxies,
diff --git a/skywalking/plugins/sw_sanic.py b/skywalking/plugins/sw_sanic.py
index b29c422..6823789 100644
--- a/skywalking/plugins/sw_sanic.py
+++ b/skywalking/plugins/sw_sanic.py
@@ -94,8 +94,8 @@ def _gen_sw_handle_request(_handle_request):
             span.peer = f'{req.remote_addr or req.ip}:{req.port}'
             span.tag(TagHttpMethod(method))
             span.tag(TagHttpURL(req.url.split('?')[0]))
-            if config.sanic_collect_http_params and req.args:
-                span.tag(TagHttpParams(params_tostring(req.args)[0:config.http_params_length_threshold]))
+            if config.plugin_sanic_collect_http_params and req.args:
+                span.tag(TagHttpParams(params_tostring(req.args)[0:config.plugin_http_http_params_length_threshold]))
             resp = _handle_request(self, request, write_callback, stream_callback)
             if isawaitable(resp):
                 result = await resp
diff --git a/skywalking/profile/profile_context.py b/skywalking/profile/profile_context.py
index 29ae461..283ad36 100644
--- a/skywalking/profile/profile_context.py
+++ b/skywalking/profile/profile_context.py
@@ -59,7 +59,7 @@ class ProfileTaskExecutionContext:
         self.task = task  # type: ProfileTask
         self._current_profiling_cnt = AtomicInteger(var=0)
         self._total_started_profiling_cnt = AtomicInteger(var=0)
-        self.profiling_segment_slots = AtomicArray(length=config.profile_max_parallel)
+        self.profiling_segment_slots = AtomicArray(length=config.agent_profile_max_parallel)
         self._profiling_thread = None  # type: Optional[Thread]
         self._profiling_stop_event = None  # type: Optional[Event]
 
@@ -96,7 +96,7 @@ class ProfileTaskExecutionContext:
 
         # check has available slot
         using_slot_cnt = self._current_profiling_cnt.get()
-        if using_slot_cnt >= config.profile_max_parallel:
+        if using_slot_cnt >= config.agent_profile_max_parallel:
             return ProfileStatusReference.create_with_none()
 
         # check first operation name matches
@@ -215,7 +215,7 @@ class ThreadProfiler:
         self._profiling_thread = profiling_thread
         self._profile_context = profile_context
         self._profile_start_time = -1
-        self.profiling_max_time_mills = config.profile_duration * 60 * 1000
+        self.profiling_max_time_mills = config.agent_profile_duration * 60 * 1000
 
         self.dump_sequence = 0
 
@@ -248,7 +248,7 @@ class ThreadProfiler:
 
         extracted = traceback.extract_stack(stack)
         for idx, item in enumerate(extracted):
-            if idx > config.profile_dump_max_stack_depth:
+            if idx > config.agent_profile_dump_max_stack_depth:
                 break
 
             code_sig = f'{item.filename}.{item.name}: {item.lineno}'
@@ -284,7 +284,7 @@ class GreenletProfiler:
         self._profiling_thread = profiling_thread
         self._profile_context = profile_context
         self._profile_start_time = -1
-        self.profiling_max_time_mills = config.profile_duration * 60 * 1000
+        self.profiling_max_time_mills = config.agent_profile_duration * 60 * 1000
 
         self.dump_sequence = 0
 
@@ -300,7 +300,7 @@ class GreenletProfiler:
         stack_list = []
         extracted = traceback.extract_stack(self._profiling_thread.gr_frame)
         for idx, item in enumerate(extracted):
-            if idx > config.profile_dump_max_stack_depth:
+            if idx > config.agent_profile_dump_max_stack_depth:
                 break
 
             code_sig = f'{item.filename}.{item.name}: {item.lineno}'
diff --git a/skywalking/trace/context.py b/skywalking/trace/context.py
index 53dafc2..6ef6429 100644
--- a/skywalking/trace/context.py
+++ b/skywalking/trace/context.py
@@ -123,8 +123,8 @@ class SpanContext:
                 trace_id=str(parent.context.segment.related_traces[0]),
                 segment_id=str(parent.context.segment.segment_id),
                 span_id=str(parent.sid),
-                service=config.service_name,
-                service_instance=config.service_instance,
+                service=config.agent_name,
+                service_instance=config.agent_instance_name,
                 endpoint=parent.op,
                 client_address=parent.peer,
                 correlation=parent.context._correlation,
diff --git a/skywalking/trace/segment.py b/skywalking/trace/segment.py
index 8b7d76d..62a0698 100644
--- a/skywalking/trace/segment.py
+++ b/skywalking/trace/segment.py
@@ -59,8 +59,8 @@ class SegmentRef(object):
         carrier.segment_id = str(snapshot.segment_id)
         carrier.endpoint = snapshot.endpoint
         carrier.span_id = snapshot.span_id
-        carrier.service = config.service_name
-        carrier.service_instance = config.service_instance
+        carrier.service = config.agent_name
+        carrier.service_instance = config.agent_instance_name
         return SegmentRef(carrier, ref_type='CrossThread')
 
 
diff --git a/skywalking/trace/span.py b/skywalking/trace/span.py
index 3d016a2..18fe1d9 100644
--- a/skywalking/trace/span.py
+++ b/skywalking/trace/span.py
@@ -214,8 +214,8 @@ class ExitSpan(Span):
             trace_id=str(self.context.segment.related_traces[0]),
             segment_id=str(self.context.segment.segment_id),
             span_id=str(self.sid),
-            service=config.service_name,
-            service_instance=config.service_instance,
+            service=config.agent_name,
+            service_instance=config.agent_instance_name,
             endpoint=self.op,
             client_address=self.peer,
             correlation=self.context._correlation,
diff --git a/skywalking/utils/filter.py b/skywalking/utils/filter.py
index 452acde..be09bfb 100644
--- a/skywalking/utils/filter.py
+++ b/skywalking/utils/filter.py
@@ -37,12 +37,12 @@ def sw_urlparse(url):
 def sw_filter(target: str):
     # Remove user:pw from any valid full urls
     # this filter is disabled by default due to perf impact
-    if config.log_reporter_safe_mode:
+    if config.agent_log_reporter_safe_mode:
         return re.sub(r'://(.*?)@', r'://', target)
     return target
 
 
 def sw_traceback():
-    stack_trace = traceback.format_exc(limit=config.cause_exception_depth)
+    stack_trace = traceback.format_exc(limit=config.agent_cause_exception_depth)
 
     return sw_filter(target=stack_trace)
diff --git a/tests/e2e/base/docker-compose.base.yml b/tests/e2e/base/docker-compose.base.yml
index ecebe43..d22e998 100644
--- a/tests/e2e/base/docker-compose.base.yml
+++ b/tests/e2e/base/docker-compose.base.yml
@@ -40,15 +40,15 @@ services:
     networks:
       - e2e
     environment:
-      SW_AGENT_SERVICE_NAME: e2e-service-provider
-      SW_AGENT_SERVICE_INSTANCE: provider1
+      SW_AGENT_NAME: e2e-service-provider
+      SW_AGENT_INSTANCE_NAME: provider1
       SW_AGENT_LOGGING_LEVEL: DEBUG
       SW_AGENT_LOG_REPORTER_ACTIVE: "True"
       SW_AGENT_LOG_REPORTER_LEVEL: WARNING
       SW_AGENT_LOG_REPORTER_SAFE_MODE: "True"
       SW_AGENT_METER_REPORTER_ACTIVE: "True"
       SW_AGENT_PVM_METER_REPORTER_ACTIVE: "True"
-      SW_INSTANCE_PROPERTIES_JSON: '{"custom_property":"The answer to all is 42"}'
+      SW_AGENT_INSTANCE_PROPERTIES_JSON: '{"custom_property":"The answer to all is 42"}'
     healthcheck:
       test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9090" ]
       interval: 5s
@@ -64,9 +64,9 @@ services:
     networks:
       - e2e
     environment:
-      SW_AGENT_SERVICE_NAME: e2e-service-consumer
-      SW_AGENT_SERVICE_INSTANCE: consumer1
-      SW_AGENT_NAMESPACE: namespace
+      SW_AGENT_NAME: e2e-service-consumer
+      SW_AGENT_INSTANCE_NAME: consumer1
+      SW_AGENT_NAMESPACE: "namespace"
       SW_AGENT_LOGGING_LEVEL: DEBUG
     healthcheck:
       test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9090" ]
diff --git a/tests/e2e/case/grpc/docker-compose.yml b/tests/e2e/case/grpc/docker-compose.yml
index d27d4f3..5a124d3 100644
--- a/tests/e2e/case/grpc/docker-compose.yml
+++ b/tests/e2e/case/grpc/docker-compose.yml
@@ -31,7 +31,7 @@ services:
     ports:
       - "9090"
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     depends_on:
       oap:
         condition: service_healthy
@@ -41,7 +41,7 @@ services:
       file: ../../base/docker-compose.base.yml
       service: consumer
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     ports:
       - "9090"
     depends_on:
diff --git a/tests/e2e/case/http/docker-compose.yml b/tests/e2e/case/http/docker-compose.yml
index 7163fd3..41d93c8 100644
--- a/tests/e2e/case/http/docker-compose.yml
+++ b/tests/e2e/case/http/docker-compose.yml
@@ -32,7 +32,7 @@ services:
     ports:
       - "9090"
     environment: # HTTP endpoint
-      SW_AGENT_COLLECTOR_ADDRESS: oap:12800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:12800
       SW_AGENT_PROTOCOL: http
     depends_on:
       oap:
@@ -43,7 +43,7 @@ services:
       file: ../../base/docker-compose.base.yml
       service: consumer
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:12800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:12800
       SW_AGENT_PROTOCOL: http
     ports:
       - "9090"
diff --git a/tests/e2e/case/kafka/docker-compose.yml b/tests/e2e/case/kafka/docker-compose.yml
index 552e50e..3e7e171 100644
--- a/tests/e2e/case/kafka/docker-compose.yml
+++ b/tests/e2e/case/kafka/docker-compose.yml
@@ -97,10 +97,10 @@ services:
     ports:
       - "9090"
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
       SW_AGENT_PROTOCOL: kafka
-      SW_AGENT_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
-      SW_AGENT_KAFKA_NAMESPACE: 'e2e'
+      SW_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
+      SW_KAFKA_NAMESPACE: 'e2e'
     depends_on:
       oap:
         condition: service_healthy
@@ -110,10 +110,10 @@ services:
       file: ../../base/docker-compose.base.yml
       service: consumer
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
       SW_AGENT_PROTOCOL: kafka
-      SW_AGENT_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
-      SW_AGENT_KAFKA_NAMESPACE: 'e2e'
+      SW_KAFKA_BOOTSTRAP_SERVERS: broker-a:9092,broker-b:9092
+      SW_KAFKA_NAMESPACE: 'e2e'
     ports:
       - "9090"
     depends_on:
diff --git a/tests/e2e/case/profiling/greenlet/docker-compose.yml b/tests/e2e/case/profiling/greenlet/docker-compose.yml
index f95a41d..68bc3e6 100644
--- a/tests/e2e/case/profiling/greenlet/docker-compose.yml
+++ b/tests/e2e/case/profiling/greenlet/docker-compose.yml
@@ -37,7 +37,7 @@ services:
       - ../provider/entrypoint.py:/services/entrypoint.py
       - ./start_gevent.sh:/services/start_gevent.sh
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     depends_on:
       oap:
         condition: service_healthy
@@ -49,7 +49,7 @@ services:
       file: ../../../base/docker-compose.base.yml
       service: consumer
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     ports:
       - "9090"
     depends_on:
diff --git a/tests/e2e/case/profiling/provider/entrypoint.py b/tests/e2e/case/profiling/provider/entrypoint.py
index 23aa07b..ef8de1e 100644
--- a/tests/e2e/case/profiling/provider/entrypoint.py
+++ b/tests/e2e/case/profiling/provider/entrypoint.py
@@ -20,7 +20,7 @@ monkey.patch_all()
 import grpc.experimental.gevent as grpc_gevent # noqa key point
 grpc_gevent.init_gevent()  # noqa key point
 from skywalking import config, agent # noqa
-config.logging_level = 'DEBUG'
+config.agent_logging_level = 'DEBUG'
 # config.init()
 agent.start()
 
diff --git a/tests/e2e/case/profiling/threading/docker-compose.yml b/tests/e2e/case/profiling/threading/docker-compose.yml
index 2149b13..b24176a 100644
--- a/tests/e2e/case/profiling/threading/docker-compose.yml
+++ b/tests/e2e/case/profiling/threading/docker-compose.yml
@@ -36,7 +36,7 @@ services:
     volumes:
       - ../provider/provider.py:/services/provider.py
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     depends_on:
       oap:
         condition: service_healthy
@@ -46,7 +46,7 @@ services:
       file: ../../../base/docker-compose.base.yml
       service: consumer
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: oap:11800
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11800
     ports:
       - "9090"
     depends_on:
diff --git a/tests/plugin/data/sw_elasticsearch/docker-compose.yml b/tests/plugin/data/sw_elasticsearch/docker-compose.yml
index 4de169c..0498b2c 100644
--- a/tests/plugin/data/sw_elasticsearch/docker-compose.yml
+++ b/tests/plugin/data/sw_elasticsearch/docker-compose.yml
@@ -57,8 +57,8 @@ services:
       elasticsearch:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_ELASTICSEARCH_TRACE_DSL: 'True'
+      SW_PLUGIN_ELASTICSEARCH_TRACE_DSL: 'True'
 networks:
   beyond:
diff --git a/tests/plugin/data/sw_happybase/docker-compose.yml b/tests/plugin/data/sw_happybase/docker-compose.yml
index 01c7f08..1a4db2c 100644
--- a/tests/plugin/data/sw_happybase/docker-compose.yml
+++ b/tests/plugin/data/sw_happybase/docker-compose.yml
@@ -51,8 +51,8 @@ services:
       hbase:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_ELASTICSEARCH_TRACE_DSL: 'True'
+      SW_PLUGIN_ELASTICSEARCH_TRACE_DSL: 'True'
 networks:
   beyond:
diff --git a/tests/plugin/data/sw_kafka/docker-compose.yml b/tests/plugin/data/sw_kafka/docker-compose.yml
index d8bf993..618aeb5 100644
--- a/tests/plugin/data/sw_kafka/docker-compose.yml
+++ b/tests/plugin/data/sw_kafka/docker-compose.yml
@@ -79,7 +79,7 @@ services:
       consumer:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: producer
+      SW_AGENT_NAME: producer
       SW_AGENT_LOGGING_LEVEL: INFO
 
   consumer:
@@ -102,7 +102,7 @@ services:
       kafka-server:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: INFO
 
 networks:
diff --git a/tests/plugin/data/sw_loguru/docker-compose.yml b/tests/plugin/data/sw_loguru/docker-compose.yml
index 666994f..1ab330a 100644
--- a/tests/plugin/data/sw_loguru/docker-compose.yml
+++ b/tests/plugin/data/sw_loguru/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
       SW_AGENT_LOG_REPORTER_LEVEL: INFO
 
@@ -60,9 +60,9 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
 
 
 networks:
diff --git a/tests/plugin/data/sw_mysqlclient/docker-compose.yml b/tests/plugin/data/sw_mysqlclient/docker-compose.yml
index a4b6908..645ebaf 100644
--- a/tests/plugin/data/sw_mysqlclient/docker-compose.yml
+++ b/tests/plugin/data/sw_mysqlclient/docker-compose.yml
@@ -61,9 +61,9 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_SQL_PARAMETERS_LENGTH: 512
+      SW_PLUGIN_SQL_PARAMETERS_MAX_LENGTH: 512
 
   consumer:
     extends:
@@ -80,7 +80,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/data/sw_psycopg/docker-compose.yml b/tests/plugin/data/sw_psycopg/docker-compose.yml
index 3494cf5..da426e9 100644
--- a/tests/plugin/data/sw_psycopg/docker-compose.yml
+++ b/tests/plugin/data/sw_psycopg/docker-compose.yml
@@ -61,9 +61,9 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_SQL_PARAMETERS_LENGTH: 512
+      SW_PLUGIN_SQL_PARAMETERS_MAX_LENGTH: 512
 
   consumer:
     extends:
@@ -80,7 +80,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/data/sw_psycopg2/docker-compose.yml b/tests/plugin/data/sw_psycopg2/docker-compose.yml
index d7000e2..a04a71f 100644
--- a/tests/plugin/data/sw_psycopg2/docker-compose.yml
+++ b/tests/plugin/data/sw_psycopg2/docker-compose.yml
@@ -60,9 +60,9 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_SQL_PARAMETERS_LENGTH: 512
+      SW_PLUGIN_SQL_PARAMETERS_MAX_LENGTH: 512
 
   consumer:
     extends:
@@ -79,7 +79,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/data/sw_pymongo/docker-compose.yml b/tests/plugin/data/sw_pymongo/docker-compose.yml
index e829c0a..894aad6 100644
--- a/tests/plugin/data/sw_pymongo/docker-compose.yml
+++ b/tests/plugin/data/sw_pymongo/docker-compose.yml
@@ -56,9 +56,9 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_PYMONGO_TRACE_PARAMETERS: 'True'
+      SW_PLUGIN_PYMONGO_TRACE_PARAMETERS: 'True'
 
   consumer:
     extends:
@@ -75,7 +75,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/data/sw_pymysql/docker-compose.yml b/tests/plugin/data/sw_pymysql/docker-compose.yml
index d6f98f2..55e0e0c 100644
--- a/tests/plugin/data/sw_pymysql/docker-compose.yml
+++ b/tests/plugin/data/sw_pymysql/docker-compose.yml
@@ -60,9 +60,9 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_SQL_PARAMETERS_LENGTH: 512
+      SW_PLUGIN_SQL_PARAMETERS_MAX_LENGTH: 512
 
   consumer:
     extends:
@@ -79,7 +79,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/data/sw_rabbitmq/docker-compose.yml b/tests/plugin/data/sw_rabbitmq/docker-compose.yml
index a8453b8..66d49dd 100644
--- a/tests/plugin/data/sw_rabbitmq/docker-compose.yml
+++ b/tests/plugin/data/sw_rabbitmq/docker-compose.yml
@@ -63,7 +63,7 @@ services:
       consumer:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: producer
+      SW_AGENT_NAME: producer
       SW_AGENT_LOGGING_LEVEL: INFO
 
   consumer:
@@ -86,7 +86,7 @@ services:
       rabbitmq-server:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: INFO
 
 networks:
diff --git a/tests/plugin/data/sw_redis/docker-compose.yml b/tests/plugin/data/sw_redis/docker-compose.yml
index 4b2aabb..468cf64 100644
--- a/tests/plugin/data/sw_redis/docker-compose.yml
+++ b/tests/plugin/data/sw_redis/docker-compose.yml
@@ -54,7 +54,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -72,7 +72,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/docker-compose.base.yml b/tests/plugin/docker-compose.base.yml
index faf67ee..2ae8950 100644
--- a/tests/plugin/docker-compose.base.yml
+++ b/tests/plugin/docker-compose.base.yml
@@ -35,9 +35,9 @@ services:
   agent:
     image: apache/skywalking-python-agent:latest-plugin
     environment:
-      SW_AGENT_COLLECTOR_ADDRESS: collector:19876
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: collector:19876
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_PROFILER_ACTIVE: 'False'
+      SW_AGENT_PROFILE_ACTIVE: 'False'
     networks:
       - beyond
     command: ['python3', '/entrypoint.py']
diff --git a/tests/plugin/http/sw_aiohttp/docker-compose.yml b/tests/plugin/http/sw_aiohttp/docker-compose.yml
index bd9617c..ad9f832 100644
--- a/tests/plugin/http/sw_aiohttp/docker-compose.yml
+++ b/tests/plugin/http/sw_aiohttp/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_http/docker-compose.yml b/tests/plugin/http/sw_http/docker-compose.yml
index e4fc0b3..f5c5fb3 100644
--- a/tests/plugin/http/sw_http/docker-compose.yml
+++ b/tests/plugin/http/sw_http/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_http_wsgi/docker-compose.yml b/tests/plugin/http/sw_http_wsgi/docker-compose.yml
index 2250952..99f1950 100644
--- a/tests/plugin/http/sw_http_wsgi/docker-compose.yml
+++ b/tests/plugin/http/sw_http_wsgi/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_httpx/docker-compose.yml b/tests/plugin/http/sw_httpx/docker-compose.yml
index d5ac43b..856539a 100644
--- a/tests/plugin/http/sw_httpx/docker-compose.yml
+++ b/tests/plugin/http/sw_httpx/docker-compose.yml
@@ -38,7 +38,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -56,7 +56,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_requests/docker-compose.yml b/tests/plugin/http/sw_requests/docker-compose.yml
index 06eda43..0b66033 100644
--- a/tests/plugin/http/sw_requests/docker-compose.yml
+++ b/tests/plugin/http/sw_requests/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_urllib3/docker-compose.yml b/tests/plugin/http/sw_urllib3/docker-compose.yml
index c13fe0a..e3dac0a 100644
--- a/tests/plugin/http/sw_urllib3/docker-compose.yml
+++ b/tests/plugin/http/sw_urllib3/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/http/sw_websockets/docker-compose.yml b/tests/plugin/http/sw_websockets/docker-compose.yml
index be4e9d6..9ad00cb 100644
--- a/tests/plugin/http/sw_websockets/docker-compose.yml
+++ b/tests/plugin/http/sw_websockets/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,9 +59,9 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
 
 networks:
   beyond:
diff --git a/tests/plugin/web/sw_bottle/docker-compose.yml b/tests/plugin/web/sw_bottle/docker-compose.yml
index 54d6297..5d9b6b6 100644
--- a/tests/plugin/web/sw_bottle/docker-compose.yml
+++ b/tests/plugin/web/sw_bottle/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,9 +59,9 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_BOTTLE_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_BOTTLE_COLLECT_HTTP_PARAMS: 'True'
 
 networks:
   beyond:
diff --git a/tests/plugin/web/sw_django/docker-compose.yml b/tests/plugin/web/sw_django/docker-compose.yml
index 40b2c9a..116dfe3 100644
--- a/tests/plugin/web/sw_django/docker-compose.yml
+++ b/tests/plugin/web/sw_django/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,9 +59,9 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_DJANGO_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_DJANGO_COLLECT_HTTP_PARAMS: 'True'
 
 networks:
   beyond:
diff --git a/tests/plugin/web/sw_falcon/docker-compose.yml b/tests/plugin/web/sw_falcon/docker-compose.yml
index 5602ab2..6cdba02 100644
--- a/tests/plugin/web/sw_falcon/docker-compose.yml
+++ b/tests/plugin/web/sw_falcon/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/web/sw_fastapi/docker-compose.yml b/tests/plugin/web/sw_fastapi/docker-compose.yml
index 94c9fef..9bf06f9 100644
--- a/tests/plugin/web/sw_fastapi/docker-compose.yml
+++ b/tests/plugin/web/sw_fastapi/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,9 +59,9 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_FASTAPI_COLLECT_HTTP_PARAMS: 'True'
 
 
 networks:
diff --git a/tests/plugin/web/sw_flask/docker-compose.yml b/tests/plugin/web/sw_flask/docker-compose.yml
index 5464757..73c5b49 100644
--- a/tests/plugin/web/sw_flask/docker-compose.yml
+++ b/tests/plugin/web/sw_flask/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,8 +59,8 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_FLASK_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_FLASK_COLLECT_HTTP_PARAMS: 'True'
 networks:
   beyond:
diff --git a/tests/plugin/web/sw_pyramid/docker-compose.yml b/tests/plugin/web/sw_pyramid/docker-compose.yml
index 2250952..99f1950 100644
--- a/tests/plugin/web/sw_pyramid/docker-compose.yml
+++ b/tests/plugin/web/sw_pyramid/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/plugin/web/sw_sanic/docker-compose.yml b/tests/plugin/web/sw_sanic/docker-compose.yml
index d7f5106..2cf2870 100644
--- a/tests/plugin/web/sw_sanic/docker-compose.yml
+++ b/tests/plugin/web/sw_sanic/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
   consumer:
     extends:
@@ -58,8 +58,8 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
-      SW_AGENT_SANIC_COLLECT_HTTP_PARAMS: 'True'
+      SW_PLUGIN_SANIC_COLLECT_HTTP_PARAMS: 'True'
 networks:
   beyond:
diff --git a/tests/plugin/web/sw_tornado/docker-compose.yml b/tests/plugin/web/sw_tornado/docker-compose.yml
index 0e29370..424c7c6 100644
--- a/tests/plugin/web/sw_tornado/docker-compose.yml
+++ b/tests/plugin/web/sw_tornado/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       timeout: 60s
       retries: 120
     environment:
-      SW_AGENT_SERVICE_NAME: provider
+      SW_AGENT_NAME: provider
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
   consumer:
@@ -59,7 +59,7 @@ services:
       provider:
         condition: service_healthy
     environment:
-      SW_AGENT_SERVICE_NAME: consumer
+      SW_AGENT_NAME: consumer
       SW_AGENT_LOGGING_LEVEL: DEBUG
 
 networks:
diff --git a/tests/unit/test_ant_matcher.py b/tests/unit/test_ant_matcher.py
index 3de01ad..a5ddf0d 100644
--- a/tests/unit/test_ant_matcher.py
+++ b/tests/unit/test_ant_matcher.py
@@ -21,7 +21,7 @@ from skywalking import config
 
 
 def fast_path_match(pattern, path):
-    config.trace_ignore_path = pattern
+    config.agent_trace_ignore_path = pattern
     config.finalize()
 
     return config.RE_IGNORE_PATH.match(path)
diff --git a/tests/unit/test_filter.py b/tests/unit/test_filter.py
index 6346264..a7daea2 100644
--- a/tests/unit/test_filter.py
+++ b/tests/unit/test_filter.py
@@ -30,7 +30,7 @@ class TestFilter(unittest.TestCase):
 
     def test_log_filter(self):
         from skywalking import config
-        config.log_reporter_safe_mode = True
+        config.agent_log_reporter_safe_mode = True
 
         self.assertEqual(
             'user:password not in http://localhost:8080',
diff --git a/tools/config_doc_gen.py b/tools/config_doc_gen.py
index f9d5995..6de94c5 100644
--- a/tools/config_doc_gen.py
+++ b/tools/config_doc_gen.py
@@ -18,7 +18,7 @@
 """
 A simple doc generator for configuration options
 """
-from skywalking.config import options_with_default_value_and_type
+from skywalking import config
 
 DOC_HEAD = """# Supported Agent Configuration Options
 
@@ -42,6 +42,8 @@ TABLE_HEAD = """### {}
 | :------------ | :------------ | :------------ | :------------ | :------------ |
 """
 
+OPTIONS = config.options_with_default_value_and_type
+
 
 def comments_from_file(file_path):
     """
@@ -87,12 +89,12 @@ def create_entry(comment: str, config_index: int) -> str:
     def env_var_name(config_entry):
         return 'SW_AGENT_' + config_entry.upper()
 
-    configuration = list(options_with_default_value_and_type.keys())[config_index]
-    type_ = options_with_default_value_and_type[configuration][1]
-    default_val = options_with_default_value_and_type[configuration][0]
+    configuration = list(OPTIONS.keys())[config_index]
+    type_ = OPTIONS[configuration][1]
+    default_val = OPTIONS[configuration][0]
 
     # special case for randomly generated default value
-    if configuration == 'service_instance':
+    if configuration == 'agent_instance_name':
         default_val = "str(uuid.uuid1()).replace('-', '')"
     return f'| {configuration} | {env_var_name(configuration)} | {str(type_)} | {default_val} | {comment} |'
 
@@ -123,7 +125,7 @@ def config_env_var_verify():
     """
     with open('skywalking/config.py', 'r') as config_file:
         data = config_file.read().replace('\n', '')
-        for each in options_with_default_value_and_type.keys():
+        for each in OPTIONS.keys():
             if f'_{each.upper()}' not in data:
                 raise Exception(f'Environment variable for {each.upper()} is not found in config.py\n'
                                 f'This means you have a mismatch of config.py variable and env var name')