实例介绍
【实例简介】
SkyAPM-dotnet是专为.NET/.NET Core平台设计的性能监控代理,它是Apache SkyWalking项目的一部分。Apache SkyWalking是一个面向微服务、云原生和基于容器(如Docker、Kubernetes、Mesos)架构的应用性能管理(APM)系统。通过Apache SkyWalking贡献者团队的帮助,SkyAPM-dotnet为C#和.NETStandard平台提供了原生支持。
SkyAPM支持的功能包括应用拓扑图、分布式追踪、ASP.NET Core诊断、HttpClient诊断以及EntityFrameworkCore诊断等。目前,该项目支持针对netcoreapp3.1、net5.0、net6.0或更高版本的应用。
要开始使用SkyAPM,您需要部署SkyWalking的后端和用户界面。从v1.0.0版本开始,SkyAPM .NET Core Agent仅支持SkyWalking 8.0或更高版本。安装SkyAPM .NET Core Agent的方法是在项目中运行以下命令:
接着,设置环境变量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES以激活SkyAPM .NET Core Agent,并将SkyAPM.Agent.AspNetCore的程序集名称添加到该环境变量中。
例如,在Windows上:
此外,可以通过安装SkyAPM.DotNet.CLI工具并使用dotnet skyapm命令来生成配置文件。
【实例截图】
【核心代码】
文件清单
└── SkyAPM-dotnet-8e8b109f7b00cc812fe62f47ed7642610c15a106
├── appveyor.yml
├── benchmark
│ └── SkyApm.Benchmark
│ ├── Program.cs
│ ├── SkyApm.Benchmark.csproj
│ └── UniqueIdGenerate.cs
├── build
│ ├── common.props
│ ├── index.cake
│ ├── sign.props
│ ├── SkyAPM.snk
│ ├── util.cake
│ ├── version.cake
│ └── version.props
├── build.cake
├── CHANGELOG.md
├── CONTIBUTING.md
├── docs
│ ├── guides
│ │ ├── how-to-build.md
│ │ ├── skyapm_config_cn.md
│ │ └── skyapm_config.md
│ └── Supported-list.md
├── LICENSE
├── NuGet.config
├── README.md
├── sample
│ ├── grpc
│ │ ├── SkyApm.Sample.GrpcProto
│ │ │ ├── grpc_csharp_plugin.exe
│ │ │ ├── Hello.cs
│ │ │ ├── HelloGrpc.cs
│ │ │ ├── hello.proto
│ │ │ ├── protoc.exe
│ │ │ ├── proto-generate.txt
│ │ │ └── SkyApm.Sample.GrpcProto.csproj
│ │ └── SkyApm.Sample.GrpcServer
│ │ ├── Extensions.cs
│ │ ├── GreeterImpl.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.GrpcServer.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.Backend
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ ├── AppsController.cs
│ │ │ ├── DelayController.cs
│ │ │ ├── ErrorsController.cs
│ │ │ ├── GrpcController.cs
│ │ │ └── ValuesController.cs
│ │ ├── Models
│ │ │ ├── Application.cs
│ │ │ ├── PostModel.cs
│ │ │ └── SampleDbContext.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Sampling
│ │ │ └── CustomSamplingInterceptor.cs
│ │ ├── Services
│ │ │ ├── GreeterGrpcService.cs
│ │ │ └── GreeterImpl.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Backend.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.FreeSql
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── SongController.cs
│ │ ├── Entitys
│ │ │ └── Song.cs
│ │ ├── PagingInfo.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.FreeSqlSqlite.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.Frontend
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── Models
│ │ │ └── Person.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Services
│ │ │ └── GreeterGrpcService.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Frontend.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.GenericHost
│ │ ├── LogWorker.cs
│ │ ├── Program.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.GenericHost.csproj
│ │ └── Worker.cs
│ ├── SkyApm.Sample.Logging
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── WeatherForecastController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Logging.csproj
│ │ └── WeatherForecast.cs
│ └── SkyApm.Sample.SmartSql
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Controllers
│ │ └── SmartSqlController.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── skyapm.json
│ ├── SkyApm.Sample.SmartSql.csproj
│ ├── SmartSqlTestDB.db
│ └── Startup.cs
├── scripts
│ └── build.ps1
├── skyapm-dotnet.sln
├── src
│ ├── SkyApm.Abstractions
│ │ ├── Common
│ │ │ ├── Components.cs
│ │ │ ├── ExceptionExtensions.cs
│ │ │ ├── NullableValue.cs
│ │ │ ├── StringBuilderExtensions.cs
│ │ │ ├── StringOrIntValue.cs
│ │ │ ├── StringOrNumValue.cs
│ │ │ └── Tags.cs
│ │ ├── Config
│ │ │ ├── ConfigAttribute.cs
│ │ │ ├── DiagnosticsLoggingConfig.cs
│ │ │ ├── GrpcConfig.cs
│ │ │ ├── IConfigAccessor.cs
│ │ │ ├── InstrumentConfig.cs
│ │ │ ├── SamplingConfig.cs
│ │ │ ├── TracingConfig.cs
│ │ │ └── TransportConfig.cs
│ │ ├── ExecutionService.cs
│ │ ├── IBase64Formatter.cs
│ │ ├── IEnvironmentProvider.cs
│ │ ├── IExecutionService.cs
│ │ ├── IInstrumentStartup.cs
│ │ ├── IRuntimeEnvironment.cs
│ │ ├── ITracingDiagnosticProcessor.cs
│ │ ├── Logging
│ │ │ ├── ILogger.cs
│ │ │ └── ILoggerFactory.cs
│ │ ├── SkyApm.Abstractions.csproj
│ │ ├── Tracing
│ │ │ ├── Extensions
│ │ │ │ └── SegmentSpanExtensions.cs
│ │ │ ├── ICarrier.cs
│ │ │ ├── ICarrierFormatter.cs
│ │ │ ├── ICarrierHeaderCollection.cs
│ │ │ ├── ICarrierHeaderDictionary.cs
│ │ │ ├── ICarrierPropagator.cs
│ │ │ ├── IDbPeerFormatter.cs
│ │ │ ├── IEntrySegmentContextAccessor.cs
│ │ │ ├── IExitSegmentContextAccessor.cs
│ │ │ ├── ILocalSegmentContextAccessor.cs
│ │ │ ├── IPeerFormatter.cs
│ │ │ ├── ISamplerChainBuilder.cs
│ │ │ ├── ISamplingInterceptor.cs
│ │ │ ├── ISegmentContextAccessor.cs
│ │ │ ├── ISegmentContextFactory.cs
│ │ │ ├── ITracingContext.cs
│ │ │ ├── IUniqueIdGenerator.cs
│ │ │ ├── Sampler.cs
│ │ │ └── Segments
│ │ │ ├── SegmentContext.cs
│ │ │ ├── SegmentReference.cs
│ │ │ └── SegmentSpan.cs
│ │ └── Transport
│ │ ├── AgentOsInfoRequest.cs
│ │ ├── CLRStatsRequest.cs
│ │ ├── ICLRStatsReporter.cs
│ │ ├── ILogReporter.cs
│ │ ├── IPingCaller.cs
│ │ ├── ISegmentContextMapper.cs
│ │ ├── ISegmentDispatcher.cs
│ │ ├── ISegmentReporter.cs
│ │ ├── IServiceRegister.cs
│ │ ├── ISkyApmLogDispatcher.cs
│ │ ├── LogRequest.cs
│ │ ├── PingRequest.cs
│ │ ├── SegmentRequest.cs
│ │ └── ServiceInstancePropertiesRequest.cs
│ ├── SkyApm.Agent.AspNetCore
│ │ ├── SkyApm.Agent.AspNetCore.csproj
│ │ └── SkyApmHostingStartup.cs
│ ├── SkyApm.Agent.GeneralHost
│ │ ├── HostBuilderExtensions.cs
│ │ └── SkyApm.Agent.GeneralHost.csproj
│ ├── SkyApm.Agent.Hosting
│ │ ├── Extensions
│ │ │ ├── HostBuilderExtensions.cs
│ │ │ └── ServiceCollectionExtensions.cs
│ │ ├── HostingEnvironmentProvider.cs
│ │ ├── InstrumentationHostedService.cs
│ │ └── SkyApm.Agent.Hosting.csproj
│ ├── SkyApm.Core
│ │ ├── Base64Formatter.cs
│ │ ├── Common
│ │ │ ├── AtomicInteger.cs
│ │ │ ├── CpuHelpers.cs
│ │ │ ├── DnsHelpers.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── FastPathMatcher.cs
│ │ │ ├── GCHelpers.cs
│ │ │ ├── PlatformInformation.cs
│ │ │ ├── StackExtensions.cs
│ │ │ └── StringOrIntValueHelpers.cs
│ │ ├── Diagnostics
│ │ │ ├── AnonymousObjectAttribute.cs
│ │ │ ├── DiagnosticNameAttribute.cs
│ │ │ ├── IParameterResolver.cs
│ │ │ ├── NullParameterResolver.cs
│ │ │ ├── ObjectAttribute.cs
│ │ │ ├── ParameterBinderAttribute.cs
│ │ │ ├── PropertyAttribute.cs
│ │ │ ├── TracingDiagnosticMethodCollection.cs
│ │ │ ├── TracingDiagnosticMethod.cs
│ │ │ ├── TracingDiagnosticObserver.cs
│ │ │ └── TracingDiagnosticProcessorObserver.cs
│ │ ├── InstrumentStartup.cs
│ │ ├── Logging
│ │ │ ├── NullLogger.cs
│ │ │ └── NullLoggerFactory.cs
│ │ ├── RuntimeEnvironment.cs
│ │ ├── Sampling
│ │ │ ├── IgnorePathSamplingInterceptor.cs
│ │ │ ├── RandomSamplingInterceptor.cs
│ │ │ └── SimpleCountSamplingInterceptor.cs
│ │ ├── Service
│ │ │ ├── CLRStatsService.cs
│ │ │ ├── LogReportService.cs
│ │ │ ├── PingService.cs
│ │ │ ├── RegisterService.cs
│ │ │ └── SegmentReportService.cs
│ │ ├── SkyApm.Core.csproj
│ │ ├── Tracing
│ │ │ ├── Carrier.cs
│ │ │ ├── CarrierPropagator.cs
│ │ │ ├── EntrySegmentContextAccessor.cs
│ │ │ ├── ExitSegmentContextAccessor.cs
│ │ │ ├── LocalSegmentContextAccessor.cs
│ │ │ ├── NullableCarrier.cs
│ │ │ ├── PeerFormatter.cs
│ │ │ ├── SamplerChainBuilder.cs
│ │ │ ├── SegmentContextAccessor.cs
│ │ │ ├── SegmentContextFactory.cs
│ │ │ ├── Sw8CarrierFormatter.cs
│ │ │ ├── TextCarrierHeaderCollection.cs
│ │ │ ├── TracingContext.cs
│ │ │ └── UniqueIdGenerator.cs
│ │ └── Transport
│ │ ├── AsyncQueueSegmentDispatcher.cs
│ │ ├── AsyncQueueSkyApmLogDispatcher.cs
│ │ └── SegmentContextMapper.cs
│ ├── SkyApm.Diagnostics.AspNetCore
│ │ ├── Config
│ │ │ └── HostingDiagnosticConfig.cs
│ │ ├── Extensions
│ │ │ └── EncodingExtensions.cs
│ │ ├── Handlers
│ │ │ ├── DefaultHostingDiagnosticHandler.cs
│ │ │ ├── GrpcHostingDiagnosticHandler.cs
│ │ │ └── IHostingDiagnosticHandler.cs
│ │ ├── HostingDiagnosticProcessor.cs
│ │ ├── HttpContextDiagnosticStrings.cs
│ │ ├── HttpRequestCarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.AspNetCore.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.CAP
│ │ ├── CapCarrierHeaderCollection.cs
│ │ ├── CapDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.CAP.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.EntityFrameworkCore
│ │ ├── DatabaseProviderBuilder.cs
│ │ ├── EntityFrameworkCoreDiagnosticProcessor.cs
│ │ ├── EntityFrameworkCoreSegmentContextFactory.cs
│ │ ├── IEntityFrameworkCoreSegmentContextFactory.cs
│ │ ├── IEntityFrameworkCoreSpanMetadataProvider.cs
│ │ ├── SkyApm.Diagnostics.EntityFrameworkCore.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Npgsql
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── NpgsqlEntityFrameworkCoreSpanMetadataProvider.cs
│ │ └── SkyApm.Diagnostics.EntityFrameworkCore.Npgsql.csproj
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Pomelo.MySql
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── MySqlEntityFrameworkCoreSpanMetadataProvider.cs
│ │ └── SkyApm.Diagnostics.EntityFrameworkCore.Pomelo.MySql.csproj
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Sqlite
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── SkyApm.Diagnostics.EntityFrameworkCore.Sqlite.csproj
│ │ └── SqliteEntityFrameworkCoreSpanMetadataProvider.cs
│ ├── SkyApm.Diagnostics.FreeRedis
│ │ ├── FreeRedisPluginConfig.cs
│ │ ├── FreeRedisTracingDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.FreeRedis.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.FreeSql
│ │ ├── FreeSqlTracingDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.FreeSql.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.Grpc
│ │ ├── Client
│ │ │ ├── ClientDiagnosticInterceptor.cs
│ │ │ └── ClientDiagnosticProcessor.cs
│ │ ├── GrpcCarrierHeaderCollection.cs
│ │ ├── Server
│ │ │ ├── ServerDiagnosticInterceptor.cs
│ │ │ └── ServerDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.Grpc.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.Grpc.Net.Client
│ │ ├── GrpcClientDiagnosticProcessor.cs
│ │ ├── GrpcDiagnostics.cs
│ │ ├── GrpcNetClientICarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.Grpc.Net.Client.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.HttpClient
│ │ ├── Config
│ │ │ └── HttpClientDiagnosticConfig.cs
│ │ ├── Extensions
│ │ │ └── HttpContentExtensions.cs
│ │ ├── Handlers
│ │ │ ├── DefaultRequestDiagnosticHandler.cs
│ │ │ ├── GrpcRequestDiagnosticHandler.cs
│ │ │ └── IRequestDiagnosticHandler.cs
│ │ ├── HttpClientDiagnosticProcessor.cs
│ │ ├── HttpClientICarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.HttpClient.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MassTransit
│ │ ├── Common
│ │ │ ├── GetComponentUtil.cs
│ │ │ ├── IComponentIdChecker.cs
│ │ │ ├── IGetComponentUtil.cs
│ │ │ ├── MassTags.cs
│ │ │ └── RabbitmqComponentIdChecker.cs
│ │ ├── MasstransitCarrierHeaderCollection.cs
│ │ ├── MasstransitExecutionService.cs
│ │ ├── MasstransitSkyApmHostingStartup.cs
│ │ ├── Observers
│ │ │ ├── MasstransitBusObserver.cs
│ │ │ ├── MasstransitConsumerObserver.cs
│ │ │ ├── MasstransitPublishObserver.cs
│ │ │ └── MasstransitReceiveObserver.cs
│ │ ├── SkyApm.Diagnostics.MassTransit.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MongoDB
│ │ ├── DiagnosticsActivityEventSubscriber.cs
│ │ ├── MongoDiagnosticProcessor.cs
│ │ ├── README.md
│ │ ├── SkyApm.Diagnostics.MongoDB.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MSLogging
│ │ ├── SkyApm.Diagnostics.MSLogging.csproj
│ │ ├── SkyApmLogger.cs
│ │ ├── SkyApmLoggerProvider.cs
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.SmartSql
│ │ ├── SkyApm.Diagnostics.SmartSql.csproj
│ │ ├── SkyWalkingBuilderExtensions.cs
│ │ └── SmartSqlTracingDiagnosticProcessor.cs
│ ├── SkyApm.Diagnostics.SqlClient
│ │ ├── SkyApm.Diagnostics.SqlClient.csproj
│ │ ├── SkyWalkingBuilderExtensions.cs
│ │ ├── SqlClientDiagnosticProcessor.cs
│ │ └── SqlClientDiagnosticStrings.cs
│ ├── SkyApm.DotNet.CLI
│ │ ├── AppCommandResolver.cs
│ │ ├── Command
│ │ │ └── ConfigCommand.cs
│ │ ├── CommandLineApplicationFactory.cs
│ │ ├── Extensions
│ │ │ ├── CommandLineApplicationExtensions.cs
│ │ │ └── ProcessExtensions.cs
│ │ ├── IAppCommand.cs
│ │ ├── IAppCommandResolver.cs
│ │ ├── Program.cs
│ │ ├── SkyApm.DotNet.CLI.csproj
│ │ └── Utils
│ │ ├── ConsoleUtils.cs
│ │ ├── DirectoryProvider.cs
│ │ ├── PlatformInformationArbiter.cs
│ │ ├── ShellProcess.cs
│ │ └── ShellProcessFactory.cs
│ ├── SkyApm.PeerFormatters.MySqlConnector
│ │ ├── MySqlConnectorPeerFormatter.cs
│ │ ├── MySqlConnectorPeerFormatterExtensions.cs
│ │ └── SkyApm.PeerFormatters.MySqlConnector.csproj
│ ├── SkyApm.PeerFormatters.SqlClient
│ │ ├── SkyApm.PeerFormatters.SqlClient.csproj
│ │ ├── SqlClientPeerFormatter.cs
│ │ └── SqlClientPeerFormatterExtensions.cs
│ ├── SkyApm.Transport.Grpc
│ │ ├── CLRStatsReporter.cs
│ │ ├── Common
│ │ │ ├── AsyncLock.cs
│ │ │ ├── Call.cs
│ │ │ ├── ExceptionHelpers.cs
│ │ │ ├── GrpcConfigExtensions.cs
│ │ │ └── SegmentV8Helpers.cs
│ │ ├── ConnectionManager.cs
│ │ ├── ConnectService.cs
│ │ ├── PingCaller.cs
│ │ ├── SegmentReporter.cs
│ │ ├── ServiceRegister.cs
│ │ ├── SkyApm.Transport.Grpc.csproj
│ │ └── V8
│ │ ├── CLRStatsReporter.cs
│ │ ├── LogReporter.cs
│ │ ├── PingCaller.cs
│ │ ├── SegmentReporter.cs
│ │ └── ServiceRegister.cs
│ ├── SkyApm.Transport.Grpc.Protocol
│ │ ├── protocol-v3
│ │ └── SkyApm.Transport.Grpc.Protocol.csproj
│ ├── SkyApm.Utilities.Configuration
│ │ ├── ConfigAccessor.cs
│ │ ├── ConfigSectionExtensions.cs
│ │ ├── ConfigurationBuilderExtensions.cs
│ │ ├── ConfigurationFactory.cs
│ │ ├── IAdditionalConfigurationSource.cs
│ │ ├── IConfigurationFactory.cs
│ │ └── SkyApm.Utilities.Configuration.csproj
│ ├── SkyApm.Utilities.DependencyInjection
│ │ ├── ServiceCollectionExtensions.cs
│ │ ├── SkyApmExtensions.cs
│ │ └── SkyApm.Utilities.DependencyInjection.csproj
│ ├── SkyApm.Utilities.Logging
│ │ ├── DefaultLogger.cs
│ │ ├── DefaultLoggerFactory.cs
│ │ ├── LoggingConfig.cs
│ │ └── SkyApm.Utilities.Logging.csproj
│ └── SkyApm.Utilities.StaticAccessor
│ ├── DependencyInjectionExtensions.cs
│ ├── NullConfigAccessor.cs
│ ├── NullInstances.cs
│ ├── NullTracingContext.cs
│ ├── SkyApmInstances.cs
│ ├── SkyApm.Utilities.StaticAccessor.csproj
│ └── StaticAccessorHostedService.cs
└── test
└── SkyApm.Core.Tests
├── ExceptionExtensionTests.cs
├── FastPathMatcherTests.cs
└── SkyApm.Core.Tests.csproj
98 directories, 367 files
SkyAPM-dotnet是专为.NET/.NET Core平台设计的性能监控代理,它是Apache SkyWalking项目的一部分。Apache SkyWalking是一个面向微服务、云原生和基于容器(如Docker、Kubernetes、Mesos)架构的应用性能管理(APM)系统。通过Apache SkyWalking贡献者团队的帮助,SkyAPM-dotnet为C#和.NETStandard平台提供了原生支持。
SkyAPM支持的功能包括应用拓扑图、分布式追踪、ASP.NET Core诊断、HttpClient诊断以及EntityFrameworkCore诊断等。目前,该项目支持针对netcoreapp3.1、net5.0、net6.0或更高版本的应用。
要开始使用SkyAPM,您需要部署SkyWalking的后端和用户界面。从v1.0.0版本开始,SkyAPM .NET Core Agent仅支持SkyWalking 8.0或更高版本。安装SkyAPM .NET Core Agent的方法是在项目中运行以下命令:
dotnet add package SkyAPM.Agent.AspNetCore
接着,设置环境变量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES以激活SkyAPM .NET Core Agent,并将SkyAPM.Agent.AspNetCore的程序集名称添加到该环境变量中。
例如,在Windows上:
dotnet new mvc -n sampleapp cd sampleapp dotnet add package SkyAPM.Agent.AspNetCore set ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore set SKYWALKING__SERVICENAME=sample_app dotnet run在macOS/Linux上:
dotnet new mvc -n sampleapp cd sampleapp dotnet add package SkyAPM.Agent.AspNetCore export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore export SKYWALKING__SERVICENAME=sample_app dotnet run
此外,可以通过安装SkyAPM.DotNet.CLI工具并使用dotnet skyapm命令来生成配置文件。
【实例截图】
【核心代码】
文件清单
└── SkyAPM-dotnet-8e8b109f7b00cc812fe62f47ed7642610c15a106
├── appveyor.yml
├── benchmark
│ └── SkyApm.Benchmark
│ ├── Program.cs
│ ├── SkyApm.Benchmark.csproj
│ └── UniqueIdGenerate.cs
├── build
│ ├── common.props
│ ├── index.cake
│ ├── sign.props
│ ├── SkyAPM.snk
│ ├── util.cake
│ ├── version.cake
│ └── version.props
├── build.cake
├── CHANGELOG.md
├── CONTIBUTING.md
├── docs
│ ├── guides
│ │ ├── how-to-build.md
│ │ ├── skyapm_config_cn.md
│ │ └── skyapm_config.md
│ └── Supported-list.md
├── LICENSE
├── NuGet.config
├── README.md
├── sample
│ ├── grpc
│ │ ├── SkyApm.Sample.GrpcProto
│ │ │ ├── grpc_csharp_plugin.exe
│ │ │ ├── Hello.cs
│ │ │ ├── HelloGrpc.cs
│ │ │ ├── hello.proto
│ │ │ ├── protoc.exe
│ │ │ ├── proto-generate.txt
│ │ │ └── SkyApm.Sample.GrpcProto.csproj
│ │ └── SkyApm.Sample.GrpcServer
│ │ ├── Extensions.cs
│ │ ├── GreeterImpl.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.GrpcServer.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.Backend
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ ├── AppsController.cs
│ │ │ ├── DelayController.cs
│ │ │ ├── ErrorsController.cs
│ │ │ ├── GrpcController.cs
│ │ │ └── ValuesController.cs
│ │ ├── Models
│ │ │ ├── Application.cs
│ │ │ ├── PostModel.cs
│ │ │ └── SampleDbContext.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Sampling
│ │ │ └── CustomSamplingInterceptor.cs
│ │ ├── Services
│ │ │ ├── GreeterGrpcService.cs
│ │ │ └── GreeterImpl.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Backend.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.FreeSql
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── SongController.cs
│ │ ├── Entitys
│ │ │ └── Song.cs
│ │ ├── PagingInfo.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.FreeSqlSqlite.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.Frontend
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── ValuesController.cs
│ │ ├── Models
│ │ │ └── Person.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Services
│ │ │ └── GreeterGrpcService.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Frontend.csproj
│ │ └── Startup.cs
│ ├── SkyApm.Sample.GenericHost
│ │ ├── LogWorker.cs
│ │ ├── Program.cs
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.GenericHost.csproj
│ │ └── Worker.cs
│ ├── SkyApm.Sample.Logging
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── Controllers
│ │ │ └── WeatherForecastController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── skyapm.json
│ │ ├── SkyApm.Sample.Logging.csproj
│ │ └── WeatherForecast.cs
│ └── SkyApm.Sample.SmartSql
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Controllers
│ │ └── SmartSqlController.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── skyapm.json
│ ├── SkyApm.Sample.SmartSql.csproj
│ ├── SmartSqlTestDB.db
│ └── Startup.cs
├── scripts
│ └── build.ps1
├── skyapm-dotnet.sln
├── src
│ ├── SkyApm.Abstractions
│ │ ├── Common
│ │ │ ├── Components.cs
│ │ │ ├── ExceptionExtensions.cs
│ │ │ ├── NullableValue.cs
│ │ │ ├── StringBuilderExtensions.cs
│ │ │ ├── StringOrIntValue.cs
│ │ │ ├── StringOrNumValue.cs
│ │ │ └── Tags.cs
│ │ ├── Config
│ │ │ ├── ConfigAttribute.cs
│ │ │ ├── DiagnosticsLoggingConfig.cs
│ │ │ ├── GrpcConfig.cs
│ │ │ ├── IConfigAccessor.cs
│ │ │ ├── InstrumentConfig.cs
│ │ │ ├── SamplingConfig.cs
│ │ │ ├── TracingConfig.cs
│ │ │ └── TransportConfig.cs
│ │ ├── ExecutionService.cs
│ │ ├── IBase64Formatter.cs
│ │ ├── IEnvironmentProvider.cs
│ │ ├── IExecutionService.cs
│ │ ├── IInstrumentStartup.cs
│ │ ├── IRuntimeEnvironment.cs
│ │ ├── ITracingDiagnosticProcessor.cs
│ │ ├── Logging
│ │ │ ├── ILogger.cs
│ │ │ └── ILoggerFactory.cs
│ │ ├── SkyApm.Abstractions.csproj
│ │ ├── Tracing
│ │ │ ├── Extensions
│ │ │ │ └── SegmentSpanExtensions.cs
│ │ │ ├── ICarrier.cs
│ │ │ ├── ICarrierFormatter.cs
│ │ │ ├── ICarrierHeaderCollection.cs
│ │ │ ├── ICarrierHeaderDictionary.cs
│ │ │ ├── ICarrierPropagator.cs
│ │ │ ├── IDbPeerFormatter.cs
│ │ │ ├── IEntrySegmentContextAccessor.cs
│ │ │ ├── IExitSegmentContextAccessor.cs
│ │ │ ├── ILocalSegmentContextAccessor.cs
│ │ │ ├── IPeerFormatter.cs
│ │ │ ├── ISamplerChainBuilder.cs
│ │ │ ├── ISamplingInterceptor.cs
│ │ │ ├── ISegmentContextAccessor.cs
│ │ │ ├── ISegmentContextFactory.cs
│ │ │ ├── ITracingContext.cs
│ │ │ ├── IUniqueIdGenerator.cs
│ │ │ ├── Sampler.cs
│ │ │ └── Segments
│ │ │ ├── SegmentContext.cs
│ │ │ ├── SegmentReference.cs
│ │ │ └── SegmentSpan.cs
│ │ └── Transport
│ │ ├── AgentOsInfoRequest.cs
│ │ ├── CLRStatsRequest.cs
│ │ ├── ICLRStatsReporter.cs
│ │ ├── ILogReporter.cs
│ │ ├── IPingCaller.cs
│ │ ├── ISegmentContextMapper.cs
│ │ ├── ISegmentDispatcher.cs
│ │ ├── ISegmentReporter.cs
│ │ ├── IServiceRegister.cs
│ │ ├── ISkyApmLogDispatcher.cs
│ │ ├── LogRequest.cs
│ │ ├── PingRequest.cs
│ │ ├── SegmentRequest.cs
│ │ └── ServiceInstancePropertiesRequest.cs
│ ├── SkyApm.Agent.AspNetCore
│ │ ├── SkyApm.Agent.AspNetCore.csproj
│ │ └── SkyApmHostingStartup.cs
│ ├── SkyApm.Agent.GeneralHost
│ │ ├── HostBuilderExtensions.cs
│ │ └── SkyApm.Agent.GeneralHost.csproj
│ ├── SkyApm.Agent.Hosting
│ │ ├── Extensions
│ │ │ ├── HostBuilderExtensions.cs
│ │ │ └── ServiceCollectionExtensions.cs
│ │ ├── HostingEnvironmentProvider.cs
│ │ ├── InstrumentationHostedService.cs
│ │ └── SkyApm.Agent.Hosting.csproj
│ ├── SkyApm.Core
│ │ ├── Base64Formatter.cs
│ │ ├── Common
│ │ │ ├── AtomicInteger.cs
│ │ │ ├── CpuHelpers.cs
│ │ │ ├── DnsHelpers.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── FastPathMatcher.cs
│ │ │ ├── GCHelpers.cs
│ │ │ ├── PlatformInformation.cs
│ │ │ ├── StackExtensions.cs
│ │ │ └── StringOrIntValueHelpers.cs
│ │ ├── Diagnostics
│ │ │ ├── AnonymousObjectAttribute.cs
│ │ │ ├── DiagnosticNameAttribute.cs
│ │ │ ├── IParameterResolver.cs
│ │ │ ├── NullParameterResolver.cs
│ │ │ ├── ObjectAttribute.cs
│ │ │ ├── ParameterBinderAttribute.cs
│ │ │ ├── PropertyAttribute.cs
│ │ │ ├── TracingDiagnosticMethodCollection.cs
│ │ │ ├── TracingDiagnosticMethod.cs
│ │ │ ├── TracingDiagnosticObserver.cs
│ │ │ └── TracingDiagnosticProcessorObserver.cs
│ │ ├── InstrumentStartup.cs
│ │ ├── Logging
│ │ │ ├── NullLogger.cs
│ │ │ └── NullLoggerFactory.cs
│ │ ├── RuntimeEnvironment.cs
│ │ ├── Sampling
│ │ │ ├── IgnorePathSamplingInterceptor.cs
│ │ │ ├── RandomSamplingInterceptor.cs
│ │ │ └── SimpleCountSamplingInterceptor.cs
│ │ ├── Service
│ │ │ ├── CLRStatsService.cs
│ │ │ ├── LogReportService.cs
│ │ │ ├── PingService.cs
│ │ │ ├── RegisterService.cs
│ │ │ └── SegmentReportService.cs
│ │ ├── SkyApm.Core.csproj
│ │ ├── Tracing
│ │ │ ├── Carrier.cs
│ │ │ ├── CarrierPropagator.cs
│ │ │ ├── EntrySegmentContextAccessor.cs
│ │ │ ├── ExitSegmentContextAccessor.cs
│ │ │ ├── LocalSegmentContextAccessor.cs
│ │ │ ├── NullableCarrier.cs
│ │ │ ├── PeerFormatter.cs
│ │ │ ├── SamplerChainBuilder.cs
│ │ │ ├── SegmentContextAccessor.cs
│ │ │ ├── SegmentContextFactory.cs
│ │ │ ├── Sw8CarrierFormatter.cs
│ │ │ ├── TextCarrierHeaderCollection.cs
│ │ │ ├── TracingContext.cs
│ │ │ └── UniqueIdGenerator.cs
│ │ └── Transport
│ │ ├── AsyncQueueSegmentDispatcher.cs
│ │ ├── AsyncQueueSkyApmLogDispatcher.cs
│ │ └── SegmentContextMapper.cs
│ ├── SkyApm.Diagnostics.AspNetCore
│ │ ├── Config
│ │ │ └── HostingDiagnosticConfig.cs
│ │ ├── Extensions
│ │ │ └── EncodingExtensions.cs
│ │ ├── Handlers
│ │ │ ├── DefaultHostingDiagnosticHandler.cs
│ │ │ ├── GrpcHostingDiagnosticHandler.cs
│ │ │ └── IHostingDiagnosticHandler.cs
│ │ ├── HostingDiagnosticProcessor.cs
│ │ ├── HttpContextDiagnosticStrings.cs
│ │ ├── HttpRequestCarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.AspNetCore.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.CAP
│ │ ├── CapCarrierHeaderCollection.cs
│ │ ├── CapDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.CAP.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.EntityFrameworkCore
│ │ ├── DatabaseProviderBuilder.cs
│ │ ├── EntityFrameworkCoreDiagnosticProcessor.cs
│ │ ├── EntityFrameworkCoreSegmentContextFactory.cs
│ │ ├── IEntityFrameworkCoreSegmentContextFactory.cs
│ │ ├── IEntityFrameworkCoreSpanMetadataProvider.cs
│ │ ├── SkyApm.Diagnostics.EntityFrameworkCore.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Npgsql
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── NpgsqlEntityFrameworkCoreSpanMetadataProvider.cs
│ │ └── SkyApm.Diagnostics.EntityFrameworkCore.Npgsql.csproj
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Pomelo.MySql
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── MySqlEntityFrameworkCoreSpanMetadataProvider.cs
│ │ └── SkyApm.Diagnostics.EntityFrameworkCore.Pomelo.MySql.csproj
│ ├── SkyApm.Diagnostics.EntityFrameworkCore.Sqlite
│ │ ├── DatabaseProviderBuilderExtensions.cs
│ │ ├── SkyApm.Diagnostics.EntityFrameworkCore.Sqlite.csproj
│ │ └── SqliteEntityFrameworkCoreSpanMetadataProvider.cs
│ ├── SkyApm.Diagnostics.FreeRedis
│ │ ├── FreeRedisPluginConfig.cs
│ │ ├── FreeRedisTracingDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.FreeRedis.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.FreeSql
│ │ ├── FreeSqlTracingDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.FreeSql.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.Grpc
│ │ ├── Client
│ │ │ ├── ClientDiagnosticInterceptor.cs
│ │ │ └── ClientDiagnosticProcessor.cs
│ │ ├── GrpcCarrierHeaderCollection.cs
│ │ ├── Server
│ │ │ ├── ServerDiagnosticInterceptor.cs
│ │ │ └── ServerDiagnosticProcessor.cs
│ │ ├── SkyApm.Diagnostics.Grpc.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.Grpc.Net.Client
│ │ ├── GrpcClientDiagnosticProcessor.cs
│ │ ├── GrpcDiagnostics.cs
│ │ ├── GrpcNetClientICarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.Grpc.Net.Client.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.HttpClient
│ │ ├── Config
│ │ │ └── HttpClientDiagnosticConfig.cs
│ │ ├── Extensions
│ │ │ └── HttpContentExtensions.cs
│ │ ├── Handlers
│ │ │ ├── DefaultRequestDiagnosticHandler.cs
│ │ │ ├── GrpcRequestDiagnosticHandler.cs
│ │ │ └── IRequestDiagnosticHandler.cs
│ │ ├── HttpClientDiagnosticProcessor.cs
│ │ ├── HttpClientICarrierHeaderCollection.cs
│ │ ├── SkyApm.Diagnostics.HttpClient.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MassTransit
│ │ ├── Common
│ │ │ ├── GetComponentUtil.cs
│ │ │ ├── IComponentIdChecker.cs
│ │ │ ├── IGetComponentUtil.cs
│ │ │ ├── MassTags.cs
│ │ │ └── RabbitmqComponentIdChecker.cs
│ │ ├── MasstransitCarrierHeaderCollection.cs
│ │ ├── MasstransitExecutionService.cs
│ │ ├── MasstransitSkyApmHostingStartup.cs
│ │ ├── Observers
│ │ │ ├── MasstransitBusObserver.cs
│ │ │ ├── MasstransitConsumerObserver.cs
│ │ │ ├── MasstransitPublishObserver.cs
│ │ │ └── MasstransitReceiveObserver.cs
│ │ ├── SkyApm.Diagnostics.MassTransit.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MongoDB
│ │ ├── DiagnosticsActivityEventSubscriber.cs
│ │ ├── MongoDiagnosticProcessor.cs
│ │ ├── README.md
│ │ ├── SkyApm.Diagnostics.MongoDB.csproj
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.MSLogging
│ │ ├── SkyApm.Diagnostics.MSLogging.csproj
│ │ ├── SkyApmLogger.cs
│ │ ├── SkyApmLoggerProvider.cs
│ │ └── SkyWalkingBuilderExtensions.cs
│ ├── SkyApm.Diagnostics.SmartSql
│ │ ├── SkyApm.Diagnostics.SmartSql.csproj
│ │ ├── SkyWalkingBuilderExtensions.cs
│ │ └── SmartSqlTracingDiagnosticProcessor.cs
│ ├── SkyApm.Diagnostics.SqlClient
│ │ ├── SkyApm.Diagnostics.SqlClient.csproj
│ │ ├── SkyWalkingBuilderExtensions.cs
│ │ ├── SqlClientDiagnosticProcessor.cs
│ │ └── SqlClientDiagnosticStrings.cs
│ ├── SkyApm.DotNet.CLI
│ │ ├── AppCommandResolver.cs
│ │ ├── Command
│ │ │ └── ConfigCommand.cs
│ │ ├── CommandLineApplicationFactory.cs
│ │ ├── Extensions
│ │ │ ├── CommandLineApplicationExtensions.cs
│ │ │ └── ProcessExtensions.cs
│ │ ├── IAppCommand.cs
│ │ ├── IAppCommandResolver.cs
│ │ ├── Program.cs
│ │ ├── SkyApm.DotNet.CLI.csproj
│ │ └── Utils
│ │ ├── ConsoleUtils.cs
│ │ ├── DirectoryProvider.cs
│ │ ├── PlatformInformationArbiter.cs
│ │ ├── ShellProcess.cs
│ │ └── ShellProcessFactory.cs
│ ├── SkyApm.PeerFormatters.MySqlConnector
│ │ ├── MySqlConnectorPeerFormatter.cs
│ │ ├── MySqlConnectorPeerFormatterExtensions.cs
│ │ └── SkyApm.PeerFormatters.MySqlConnector.csproj
│ ├── SkyApm.PeerFormatters.SqlClient
│ │ ├── SkyApm.PeerFormatters.SqlClient.csproj
│ │ ├── SqlClientPeerFormatter.cs
│ │ └── SqlClientPeerFormatterExtensions.cs
│ ├── SkyApm.Transport.Grpc
│ │ ├── CLRStatsReporter.cs
│ │ ├── Common
│ │ │ ├── AsyncLock.cs
│ │ │ ├── Call.cs
│ │ │ ├── ExceptionHelpers.cs
│ │ │ ├── GrpcConfigExtensions.cs
│ │ │ └── SegmentV8Helpers.cs
│ │ ├── ConnectionManager.cs
│ │ ├── ConnectService.cs
│ │ ├── PingCaller.cs
│ │ ├── SegmentReporter.cs
│ │ ├── ServiceRegister.cs
│ │ ├── SkyApm.Transport.Grpc.csproj
│ │ └── V8
│ │ ├── CLRStatsReporter.cs
│ │ ├── LogReporter.cs
│ │ ├── PingCaller.cs
│ │ ├── SegmentReporter.cs
│ │ └── ServiceRegister.cs
│ ├── SkyApm.Transport.Grpc.Protocol
│ │ ├── protocol-v3
│ │ └── SkyApm.Transport.Grpc.Protocol.csproj
│ ├── SkyApm.Utilities.Configuration
│ │ ├── ConfigAccessor.cs
│ │ ├── ConfigSectionExtensions.cs
│ │ ├── ConfigurationBuilderExtensions.cs
│ │ ├── ConfigurationFactory.cs
│ │ ├── IAdditionalConfigurationSource.cs
│ │ ├── IConfigurationFactory.cs
│ │ └── SkyApm.Utilities.Configuration.csproj
│ ├── SkyApm.Utilities.DependencyInjection
│ │ ├── ServiceCollectionExtensions.cs
│ │ ├── SkyApmExtensions.cs
│ │ └── SkyApm.Utilities.DependencyInjection.csproj
│ ├── SkyApm.Utilities.Logging
│ │ ├── DefaultLogger.cs
│ │ ├── DefaultLoggerFactory.cs
│ │ ├── LoggingConfig.cs
│ │ └── SkyApm.Utilities.Logging.csproj
│ └── SkyApm.Utilities.StaticAccessor
│ ├── DependencyInjectionExtensions.cs
│ ├── NullConfigAccessor.cs
│ ├── NullInstances.cs
│ ├── NullTracingContext.cs
│ ├── SkyApmInstances.cs
│ ├── SkyApm.Utilities.StaticAccessor.csproj
│ └── StaticAccessorHostedService.cs
└── test
└── SkyApm.Core.Tests
├── ExceptionExtensionTests.cs
├── FastPathMatcherTests.cs
└── SkyApm.Core.Tests.csproj
98 directories, 367 files
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论