Report service instance status

  1. Service Instance Properties Service instance contains more information than just a name. In order for the agent to report service instance status, use ManagementService#reportInstanceProperties service to provide a string-key/string-value pair list as the parameter. The language of target instance must be provided as the minimum requirement.

  2. Service Ping Service instance should keep alive with the backend. The agent should set a scheduler using ManagementService#keepAlive service every minute.

syntax = "proto3";

package skywalking.v3;

option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.management.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
option go_package = "skywalking.apache.org/repo/goapi/collect/management/v3";

import "common/Common.proto";
import "common/Command.proto";

// Define the service reporting the extra information of the instance.
service ManagementService {
    // Report custom properties of a service instance.
    rpc reportInstanceProperties (InstanceProperties) returns (Commands) {
    }

    // Keep the instance alive in the backend analysis.
    // Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
    // Otherwise, it is duplicated.
    rpc keepAlive (InstancePingPkg) returns (Commands) {

    }
}

message InstanceProperties {
    string service = 1;
    string serviceInstance = 2;
    repeated KeyStringValuePair properties = 3;
    // Instance belong layer name which define in the backend, general is default.
    string layer = 4;
}

message InstancePingPkg {
    string service = 1;
    string serviceInstance = 2;
    // Instance belong layer name which define in the backend, general is default.
    string layer = 3;
}

Via HTTP Endpoint

  • Report service instance properties

POST http://localhost:12800/v3/management/reportProperties

Input:

{
	"service": "User Service Name",
	"serviceInstance": "User Service Instance Name",
	"properties": [
		{ "key": "language", "value": "Lua" }
	]
}

Output JSON Array:

{}
  • Service instance ping

POST http://localhost:12800/v3/management/keepAlive

Input:

{
	"service": "User Service Name",
	"serviceInstance": "User Service Instance Name"
}

OutPut:

{}