Hizmetleri
Instana her isteği izler ve analiz eder. Hizmetler ve uç noktalar otomatik olarak keşfedilir ve hizmetler, uç noktalar ve altyapınız arasındaki ilişkiler otokorelasyon ile ilişkilendirilir ve dinamik grafiğimizdedepolanır.
İzleyicilerden ve algılayıcılardan toplanan verilere dayalı olarak, anahtar başarım göstergeleri çağrılar, gecikme süresi ve hatalı çağrılar için hesaplanır. Anahtar başarım göstergeleri, her bir hizmetin durumunu ve altyapınızın sağlığını keşfetmenize yardımcı olur.
Hizmetler, uygulama izlemenin bir parçasıdır ve sisteminizin mantıksal bir görünümünü sağlar. Hizmetler, anasistemler, kapsayıcılar ve süreçler gibi altyapı varlıklarından türetilir. Gelen çağrılar altyapı varlıkları ile ilişkilendirilir ve altyapı verileriyle zenginleştirilir; örneğin, Kubernetes pod etiketi ya da SpringBoot uygulama adı. Bu altyapı bağlantısı oluşturma işleme adımından sonra, bir hizmet eşleme adımı, bir kural kümesine dayalı olarak çağrı başına bir hizmet adı oluşturmak için zenginleştirilmiş çağrıları eşler. Instana, otomatik olarak en iyi hizmet adını oluşturmanız için kapsamlı bir önceden tanımlanmış kurallar kümesiyle birlikte gönderilir. Hizmet eşlemesini ince ayar yapmak için kendi özel kurallarınızı oluşturabilirsiniz, bkz. Hizmet eşlemesini özelleştirme.
- Önceden tanımlanmış kurallar
- Hizmet eşlemeyi uyarla
- El ile hizmet yapılandırması (Deneysel)
- Belirlenmemiş hizmetler
- SSS
Önceden tanımlı kurallar
Aşağıdaki kurallar azalan sırada kabul edilir. Bir kural eşleştiğinde, ilgili hizmet yaratılır.
| Kural | Etiketler |
|---|---|
| Özel hizmet kuralı | Kullanıcı tarafından tanımlanan etiketler (bkz. özel hizmet eşlemesi) |
INSTANA_SERVICE_NAME ortam değişkeninden süreç sırasında kullanıcı tanımlı hizmet adı |
{instana.service.name} |
HTTP Üstbilgisi aracılığıyla kullanıcı tanımlı hizmet adı X-Instana-Service |
{call.http.header.x-instana-service} |
Sdk kapsamı verilerinde kullanıcı tanımlı hizmet adı (set service etiketi) |
{call.tag.service} |
| OpenTelemetry tanımlı hizmet adı | {otel_resource.service.name} |
| OpenTelemetry uzak hizmetin hizmet adı | {otel.peer.service} |
| Jaeger tanımlı hizmet adı | {jaeger.service.name} |
| Zipkin tanımlı hizmet adı | {zipkin.service.name} |
| IBM MQ Kuyruk Yöneticisi | {ibmmq.queuemanager.name} |
| ACE Sunucu Adı | {ace.broker.name}:{ace.server.name} |
| Konsolos kümesi adı | Konsül@{consul.cluster.name} |
| Cassandra küme adı | {cassandra.cluster.name} |
| ElasticSearch küme adı | {elasticsearch.cluster.name} |
| Couchbase küme adı | {couchbase.cluster.name} |
| MongoDB eşleme kümesi adı | {mongo.replicaSetName} |
| Kafka küme adı | {kafka.cluster.name} |
| ClickHouse küme adı | Clickhouse@{clickhouse.cluster.name} |
functionname ile Hizmet olarak işlev kapsamı |
{faas.functionname} |
| AWS EC küme tanıtıcısı | {aws.ec.cluster.id} |
| AWS RDS küme adı | {aws.rds.cluster.name} |
| AWS hizmet tipi DynamoDB | DynamoDB |
| AWS hizmet tipi S3 | AWS S3 |
| Google Cloud hizmet tipi Depolama | Google Cloud Storage |
| Azure App Service adı | {azure.appservice.name} |
| AWS ECS taşıyıcısı adı | {container.label.com.amazonaws.ecs.container-name} |
| AWS ECS görev ailesi | {container.label.com.amazonaws.ecs.task-definition-family} |
| Kubernetes taşıyıcı adı | {kubernetes.container.name} |
| Cloud Foundry Uygulama adı | {cloudfoundry.application.name} |
| Docker Swarm hizmet adı | {docker.label.com.docker.swarm.service.name} |
| Marathon uygulama tanıtıcısı (ayrıştırılmış) | {marathon.app.id-1} |
| Göçebe görev adı | {nomad.task.name} |
| Sıralayıcı 1 proje hizmeti adı | {container.label.io.rancher.project_service.name} |
| Kapsayıcı resmi adı (ayrıştırılmış) | {container.image.name-1} |
| Dosya uzantılı (ayrıştırılmış) Uygulama Taşıyıcısı (JBoss, Tomcat, WebLogic, WebSphere, MSIIS) konuşlandırma adı | {call.deployment.name-1} |
| Dosya uzantıları olmadan Uygulama Taşıyıcısı (JBoss, Tomcat, WebLogic, WebSphere, MSIIS) konuşlandırma adı (ayrıştırılmış) | {call.deployment.name-1} |
| Bırakma sihirbazı adı | {dropwizard.name} |
| Spring Boot adı | {springboot.name} |
| JBoss adı | {jboss.server.name} {jboss.node.name?} |
| WebSphere adı | {websphere.server.name} |
| WebLogic adı | {weblogic.server.name} |
| Redis kapısı | Redis@{redis.port} - {host.name} |
| Aerospike limanı | Aerospike@{aerospike.port} - {aerospike.host} |
| Neo4j kapısı | Neo4j@{neo4j.port} - {host.name} |
| Memcached kapı | Memcached@{memcached.port} - {host.name} |
| Vernik kapı | {host.name} üzerinde Varnish@{varnish.port} |
| Tıklatma Evi kapısı | {host.name} üzerinde{clickhouse.httpPort} öğesini tıklatın |
| MongoDB veritabanı adı | MongoDB@{mongo.port} - {host.name} |
| Zookeeper kapısı | {host.name} üzerinde{zookeeper.clientPort} Zosaİki |
| Solr sürümü | Solr- {host.name} üzerinde{solr.version} |
| Solr. | {host.name} üzerinde solr |
| Solr Zookeeper | Solr Zookeeper-{solr.zk_host} |
| PostgreSQL kapısı | PostgreSQL@{postgresql.port} - {host.name} |
| CockroachDB kapısı | {host.name} üzerinde CockroachDB@{cockroachdb.port} |
| MySQL kapısı | MySQL@{mysql.port} - {host.name} |
| OracleDB kapısı | OracleDB@{oracledb.port} - {host.name} |
| MSSQL veritabanı SID 'si | MSSQL@{mssql.instance} |
| MariaDB kapısı | MariaDB@{mariadb.port} - {host.name} |
| Kafka sürümü | Kafka-{kafka.version} açık lerinde una bakın una bakın lerinde {host.name} |
| ActiveMQ aracı adı | {activemq.broker.name} |
| RabbitMQ sürümü | RabbitMQ-{rabbitmq.version} açık bakın deki ğı ğı bakın {host.name} |
| RocketMQ sürümü | RocketMQ-{rocketmq.version} on deki una Ama deki deki {host.name} |
| jar dosyasından JVM adı | {jvm.app.name-1} |
| JVM adı | {jvm.app.name} |
| Anasistem ortamıyla Node.js uygulaması | {nodejs.app.name} |
| Python anlık görünüm adı | {python.app.name} |
| Ruby adı | {ruby.app.name} |
| Go adı | {go.app.name} |
| Varsa anasistem üstbilgisi kullanan PHP (ayrıştırılmış) | {call.http.host-1} |
| PHP | PHP |
| PHP-FPM işçi havuzu için PHP | PHP |
| CLR adı | {clr.app.name} |
| .Net Çekirdek adı | {netcore.app.name} |
| Haskell adı | {haskell.app.name} |
| Crystal adı | {crystal.app.name} |
| GCP Bulut Çalıştırma Hizmeti | {gcp.cloudrun.service.name} |
| Bulut altyapısı tanıtıcısı | {cloud.id} |
| Kabuk genişliği | Ortaya çıkarmış süreçler |
object kullanılarak RPC hizmeti kapsamı (ayrıştırılmış, WSDL ad alanlarıyla) |
{call.rpc.object-1} |
object kullanılarak RPC hizmeti kapsamı |
{call.rpc.object} |
| Veritabanı FTP kapsamı | {call.database.connection} |
connection ile veritabanı önbellek tipi kapsamı (ayrıştırılmış) |
{call.database.type} @ {call.database.connection-1} |
| Veritabanı önbellek tipi kapsamı | {call.database.type} |
| MongoDB veritabanı kapsamı (ayrıştırılmış) | {call.database.schema-1} |
| ElasticSearch veritabanı kapsamı (ayrıştırılmış) | {call.database.connection-1} |
| Couchbase / Redis veritabanı kapsamı (ayrıştırılmış) | {call.database.connection-1} |
| AWS S3 veritabanı kapsamı | AWS S3 |
| DynamoDB veritabanı kapsamı | DynamoDB |
| Google Cloud Storage kapsamı | Google Cloud Storage |
| CosmosDB veritabanı kapsamı (ayrıştırılmış) | {call.database.schema-1} |
| Genel veritabanı kapsamı | {call.database.schema} |
connection şemasının kullanıldığı soysal veritabanı kapsamı (ayrıştırılmış) |
{call.database.connection-1} |
connection ' den anasistem kullanılarak soysal veritabanı kapsamı (ayrıştırıldı) |
{call.database.connection-1} |
Genel veritabanı kapsamı, yedek type |
{call.database.type} |
| Geçici kuyruklar için ileti sistemi kapsamı | {call.messaging.type} |
| IBM MQ kapsamı adres kullanılarak | {call.messaging.address-1} |
| Apache RocketMQ kapsamı adres kullanılarak | {call.messaging.address-1} |
| IBM ACE adresi kullanılarak aralık | {call.messaging.address-1} |
| Adres kullanılarak JMS kapsamı (ayrıştırılmış) | {call.messaging.address-1} |
| Adres kullanılarak ileti alışverişi kapsamı (tam) | {call.messaging.address} |
| İleti sistemi kapsamı, adres yok | {call.messaging.type} |
| z/OS Bağlantı kapsamı | {call.zcee.serviceName} |
| Ana makineyle HTTP kapsamı (ayrıştırılmış) | {call.http.host-1} |
| URL ile HTTP kapsamı (ayrıştırılmış) | {call.http.url-1} |
| PHP komut dosyası kapsamı (CLI gibi) | {call.php.script.name} |
| SDK kapsamı | SDK |
RPC (RMI) kapsamı, object yok |
RMI |
| GraphQL Abone kapsamı | GraphQL Aboneleri |
| Olay Tetikleyicisi | {call.event.trigger} |
| Bulut Meta Veri Hizmeti | Bulut Meta Veri Hizmeti |
Bir hizmet, API ' nin uç noktalarından oluşan verilir ama verilir ama sistemin geri kalanı için genel API sağlayan mantıksal bir bileşen olarak görülebilir. Bir hizmet izleniyor ve çağrılar yapılıyor ve alıyor. Bir hizmet isteği, belirli bir uç noktaya tek bir çağrı ile sonuçlanır.
Hizmetler, bir uygulama perspektifinden izole olarak veya bir bakış açısı ile değerlendirilebilir. Hizmetler genellikle paket veya kapsayıcı gibi bir 'devreye alma birimi' ile eşlenir. Bunun birden çok örneği (örneğin, kapsayıcı aynı anda çalışıyorsa), bunların tümü aynı mantıksal hizmetle eşler.
Hizmet tipleri, uç noktalardan devralma yoluyla otomatik olarak atanır. Örneğin, bir hizmetin hem HTTP hem de BATCH uç noktaları varsa, hem HTTP hem de BATCH tiplerine atanır. Hizmetlere ilişkin anahtar başarım göstergeleri (Çağrılar, Hatalar, Gecikmek kadar ne bilirsiniz?), tipten bağımsız olarak tüm çağrıların toplamını görüntüler.
Hizmet eşlemeyi uyarla
Varsayılan hizmet eşlemesini uyarlamak için kullanılabilecek dört yöntem vardır.
- Özel bir hizmet kuralı oluşturun. Hizmetler yapılandırılmış olsa bile, örneğin,
INSTANA_SERVICE_NAMEortam değişkeniyle bu kural, öncelikteki diğer tüm kurallardan önce gelir. service.nameetiketini uygulayın.INSTANA_SERVICE_NAMEortam değişkenini belirtin. Not: Sınırlamalar Dinamik Dil Algılayıcılarındabelgelenmiştir.- HTTP üstbilgisini
X-Instana-Servicebelirtin.
Özel hizmet kuralı yaratılması
- Kenar çubuğundan Uygulamalar ' ı tıklatın ve Hizmetler sekmesini seçin.
- Hizmetleri Yapılandır ' ı tıklatın.
- Özel Hizmet Kuralı Ekle düğmesini bak,. Tıklatın.
- Açılan listeden etiketleri seçin.
Özel hizmet kuralı kullanmanın bir nedeni, altyapı bileşenlerinize ilişkin var olan meta bilgilerin kullanılmasıdır. Örneğin, Docker kapsayıcılarınızı, bu etiketteki hizmetleri eşlemek için com.acme.service-name:myservicegibi etki alanına özgü bilgilerle etiketlediyseniz, docker.label ve com.acme.service-name etiketlerini seçin. com.acme.service-name etiketiyle bir taşıyıcıyı ileten tüm çağrılar, bu değerle adlandırılan bir hizmetle ilişkilendirilir; örneğin, myservice. Özel hizmet eşlemesi yaratmak için kullanılabilecek birden çok etiket var.
Hizmet eşlemesi için birden çok anahtar da ekleyebilirsiniz. Birden çok etiket kısa çizgi ile birleştirilir. Tüm tuşların eşleşmesi gerektiğini unutmayın; örneğin, anasistem bölgesine göre hazırlama hizmetlerinizi ayırmak istiyorsanız şu iki anahtarı ekleyebilirsiniz: host.zone + docker.label:com.acme.service-name. Daha sonra, hizmetleriniz anasistem bölgesi değerlerinin birleştirilmesi ve ardından docker etiketi ile adlandırılacak. Bu şekilde, prod-myservice ve dev-myservicegibi iki hizmeti ayırabilecekdiniz.
Özel bir service.default_nameetiketi kullanılarak, hizmet varsayılan kurallarını daha fazla etiketle genişletmek için de özel bir hizmet kuralı kullanılabilir. Örneğin, otomatik olarak oluşturulan hizmetleri anasistem bölgelerine göre bölmek için, service.default_name ve host.zoneetiketlerini kullanarak özel hizmet kuralı oluşturun.

service.name arama etiketini uygula
Belirli çağrıları ilişkilendirmek için, kodunuz içinde uyarlanmış eşlemeleri etkinleştiren çağrılara ek açıklama eklemenizi sağlar. Çağrıları aramak ve çözümlemek için service ek açıklaması service.name etiketine dönüştürülüyor.
Arama ek açıklamaları eklemek için aşağıdaki seçenekler kullanılabilir:
JavaSDK: https://github.com/instana/instana-java-sdk (
SpanSupport.annotate).OpenTracing Java: https://github.com/instana/instana-java-opentracing (
span.setTag).Python: https://github.com/instana/python-sensor (
span.set_tag).Ruby: https://github.com/instana/ruby-sensor (
span.set_tag).PHP: https://github.com/instana/instana-php-opentracing (
\$span->setTag).Gidin: https://github.com/instana/go-sensor/ (
span.SetTag).Node.js: Node.js yapılandırma belgeleri ' ne bakın (süreç çapında yapılandırma, farklı çağrılar için ayrı ayrı adlar sağlanması desteklenmez).
Haskell: http://hackage.haskell.org/package/instana-haskell-trace-sdk (
InstanaSDK.setServiceName).
Java İzleme SDK 'sı ve hizmetlerin adlandırılmasına ilişkin ek bilgi için dönüştürme ve adlandırma bölümüne bakın.
INSTANA_SERVICE_NAME ortam değişkenini belirtin
Bir süreçte INSTANA_SERVICE_NAME ortam değişkeni ayarlanarak, ortam değişkeninin değeri, o sürecin hedefi olan tüm çağrılar için hizmet adı olarak kullanılır.
Instana tarafından tanınan ortam değişkenleriyle ilgili daha fazla bilgi için bkz. genel başvuru belgeleri.
X-Instana-Service HTTP üstbilgisini belirtin
Bir çağrıda X-Instana-Service HTTP üstbilgisi ayarlandığında, hedef (HTTP isteğini alan hizmet) üstbilgide sağlanan değerle etiketlenir.
Not: X-Instana-Service HTTP üstbilgisi otomatik olarak toplanmaz. Bunun çalışması için, YönOrtamıaracının yapılandırılması gerekir, bkz. "Özel HTTP üstbilgilerini yakalama".
El ile hizmet yapılandırması (Deneysel)
Bazı durumlarda, otomatik hizmet eşlemesi bazı çağrılar için kullanıma hazır olarak çalışamaz. El ile hizmet yapılandırması, arama etiketlerini (örneğin, call.http.host, call.database.connection) kullanarak bir etiket süzgeci ifadesiyle çağrıları tanımlayabilir ve
- ya da bunları özel bir hizmet adıyla, izlenmeyen bir hizmetle eşleyin.
- veya bunları, izlenen bir altyapı varlığından oluşturulan var olan bir veritabanı veya ileti sistemi hizmetine bağlayın.
El ile hizmet yapılandırması, APIaracılığıyla eklenebilir, güncellenebilir ya da silinebilir.
Özel adla izlenmeyen hizmete eşle
Instana tarafından izlenmeyen bir hizmete yapılan çağrılar, arama etiketleri kullanılarak bir hizmete eşlenir.
Örneğin, www.google.com gibi üçüncü taraf bir esinde davranan HTTP çağrıları, HTTP host üstbilgisine (call.http.host etiketi) dayalı olarak www.google.com hizmetiyle eşlenir. HTTP host üstbilgileri farklı olduğundan www.google.fr ya da www.google.de için yapılan çağrılar farklı hizmetlerle eşlenir.
Aşağıdaki el ile hizmet yapılandırmasını ekleyerek farklı etki alanlarına yapılan tüm çağrıları "Google" adlı bir hizmetle eşleyebilirsiniz:
{
"tagFilterExpression": {
"type": "TAG_FILTER",
"name": "call.http.host",
"value": "www.google.",
"operator": "STARTS_WITH",
"entity": "NOT_APPLICABLE"
},
"unmonitoredServiceName": "Google",
"description": "Map calls to different google domains to Google service",
"enabled": true
}
İzlenen bir altyapı varlığından oluşturulan var olan bir veritabanı ya da ileti sistemi hizmetine yönelik çağrıları bağla
Bir veritabanı ya da ileti sistemi YönOrtamıana tarafından izleniyorsa, o veritabanına ya da ileti sistemine yapılan çağrılar altyapı etiketine dayalı olarak bir hizmetle eşlenmelidir (örneğin, MySQL@3306 on demo-host). Altyapı ilişkilendirmesayesinde. Ancak bazen bir yetkili sunucu veya yük dengeleyici varlığı nedeniyle, Instana o bileşeni izlemediği veya bu bileşene araç vermediği ve isteklerin nasıl yönlendirildiğini bilmediği için altyapı korelasyonu çalışmayabilir. Sonuç olarak, aramalar arama etiketlerine dayalı olarak bir hizmetle eşlenir (örneğin, call.database.schema, call.database.connection ya da call.messaging.address), hedef hizmet izlenmiyor in ya değil)) için).
Bu durumda, altyapı varlığından oluşturulan ve çağrıları olmayan başka bir hizmet bulacaksınız. Var olan bir hizmete yapılan çağrıları eşlemek için aşağıdaki el ile hizmet yapılandırmasını kullanabilirsiniz:
{
"tagFilterExpression": {
"type": "TAG_FILTER",
"name": "call.database.connection",
"value": "jdbc:mysql://10.128.0.1:3306",
"operator": "CONTAINS",
"entity": "NOT_APPLICABLE"
},
"existingServiceId": "a880d1875389b78b49b19387ef7ab815b313764f", // service id of "MySQL@3306 on demo-host" service, can be found in the "serviceId" url parameter of the service dashboard
"description": "Link calls to MySQL@3306 on demo-host service",
"enabled": true
}
Belirtilmemiş hizmetler
Unspecified hizmeti, özel ya da önceden tanımlanmış hizmet eşleme kurallarının hiçbiriyle eşleşmeyen çağrılara yedek hizmet olarak işlev gören özel bir hizmettir.
Hizmet gösterge panosundan, bu çağrıların ne hakkında olduğunu öğrenmek için uç noktaların listesini kullanabilir ya da daha iyisi Analyze Calls adresine atlayabilir ve call.name ile gruplayabilirsiniz.
Genellikle, YönOrtamıana arka ucundaki geçici bir sorunla karşı karşıyadır; burada kısa bir süre için çağrıların hedefi temel işlemle bağlantılandırılamaz (örneğin, süreç yeni başlatılmış ve YönOrtamıana aracısı henüz keşfetmemiş , YönOrtamıana enstrümantasyonu çağrıları zaten yakalarken) ve bu nedenle hizmet mappping kurallarında kullanılan gerekli etiketler çıkarılamadı. Altyapı ilişkilendirmesi ve hizmet eşlemesinin rolü hakkında daha fazla bilgi için buraya bakın.
Ancak bazen önceden tanımlanmış kurallar kümemiz içinde bir boşluk ortaya çıkar ve bu durumda bunları geliştirmek için sizden duymak isteriz.
Hedefi bir sürece bağlanamamış olan ve Host üstbilgisi bir IP olan HTTP çağrıları için, bunların Belirtilmemiş hizmetle eşleneceğini unutmayın. Bu durumda anlamlı bir hizmet adı ayarlamak için isteklere X-Instana-Service üstbilgisi ekleyebilirsiniz .
SSS
Neden listelenen hiçbir hizmeti göremiyorum?
Hiçbir hizmetin listelenmemesinin nedeni, aracının APM kipinde çalışmamasından ve hiçbir aracının kurulu olmamasından kaynaklanır; bu nedenle, izleme toplanmadı ya da bir aracı kuruluysa, seçilen zaman çerçevesi sırasında izlemeler toplanmadı.
Bir aracının kurulu ve çalışıyor olup olmadığını denetlemek için, altyapı eşleminde bir aracısı olabilecek anasistemleri görüntülemek üzere Altyapı öğesini tıklatın ya da kurulu aracıların listesini görmek için Diğer > Aracılar öğesini tıklatın. Listede aracı yoksa, aracı ' yı nasıl kuracağınıza ya da uygulama perspektifinasıl oluşturacağınıza ilişkin belgelere bakın.
Hizmet adı neden bazen değişir?
Hizmet eşlemesi, altyapı verilerine dayanır. Ancak bazı senaryolarda, izleme verileri altyapı verileriyle zenginleştirilemez. Örneğin, izleme verileri bir YönOrtamıaracı başlatıldıktan kısa bir süre sonra zenginleştirilmeyebilir ya da izlenen bir işlem başlatılabilir. İzlenen uygulamanın tam donanımlı hale gelmesi ve izleyiciler ve algılayıcılar veri toplamaya başlayana kadar biraz zaman alır. Tüm algılayıcılar etkin olmadan önce ilk birkaç iz toplanmışsa, bu izlerde altyapı verilerinin bir kısmı ya da tamamı eksik olabilir. Bu tür durumlarda, kullanılan hizmet adı daha az belirsizdir; örneğin, SpringBoot uygulama adı yerine HTTP anasistemi.
Esnek eşleme olarak bilinen bir mekanizma, YönOrtamıana aracılarının veya izlenen süreçlerin yeniden başlatılmasıyla ilgili hizmet eşleme sorunlarını önlemek için kullanılır. Doğru hizmete yapılan çağrıları eşlemeye ilişkin altyapı verileri kullanılamıyorsa, esnek eşleme etkili olur. Esnek eşleme, önceki eşleme sonuçlarının önbelleğini kullanarak doğru hizmete çağrı atayabilir. Ancak bu, örneğin, önbellek eskimiş altyapı verileri içeriyorsa, beklenmeyen bir hizmet adına neden olabilir. Esnek önbellek güncellendiğinde beklenen hizmet otomatik olarak geri gelir.