Could you please help us on how to install Geneva extension on managed service fabric cluster

Krishna Raju G V S S R Penumatsa 1 Reputation point Microsoft Employee
2024-07-09T21:43:34.84+00:00

Trying to install the Geneva extension on managed service fabric cluster but not able to install .

Azure Service Fabric
Azure Service Fabric
An Azure service that is used to develop microservices and orchestrate containers on Windows and Linux.
267 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Prrudram-MSFT 24,926 Reputation points
    2024-07-12T07:03:00.7+00:00

    Hello @Krishna Raju G V S S R Penumatsa

    I can give you some highlevel steps and headstart with this, If you facing any issues, I would recommend raising a support ticket with Azure Service Fabric technical support team.

    Running Geneva Agent on Service Fabric via VMSS Extension:

    Steps required to run Geneva Agent via Geneva Extension on Service Fabric

    1. New customers (who are not using Service Fabric Monitoring Application)
      • Configure GCS parameters in Geneva Extension section
      • Configure Service Fabric VM extension to synchronize with Geneva Extension (to avoid race condition)
      • If you want to capture health events emitted by SF runtime, then you will need to use FabricMonitoringServiceType from Service Fabric Monitoring Application along with Geneva vmss extension.
    2. Existing customers (who are using Service Fabric Monitoring Application)
      • Update Service Fabric Monitoring Application to version 8.3. This version supports live migration to Geneva Extension without requiring VM reboot.
      • Configure GCS parameters in Geneva Extension section
      • Configure Service Fabric VM extension to synchronize with Geneva Extension (to avoid race condition)

    If you are using Managed Service Fabric clusters, refer to this public documentation for how to configure VM extensions in ARM template.
    Configure Environment variables required by ServiceFabricEvents.xml

    ServiceFabricEvents.xml is a config file which you can import in your GCS config. This file contains out of the box configuration for collecting common events and metrics when running on Service Fabric. This file uses several environment variables to parameterize the configuration. If you are importing this file in your GCS confuguration, you need to set these environment variables via Geneva Extension settings as shown below.

    Environment Variable Description
    MONITORING_TENANT Tenant part of agent identity This corresponds to the ClusterName parameter for SF Monitoring Application. Make sure that value is same if you are migrating from SF Monitoring App to Geneva Extension.
    MONITORING_TENANT Tenant part of agent identity This corresponds to the ClusterName parameter for SF Monitoring Application. Make sure that value is same if you are migrating from SF Monitoring App to Geneva Extension.
    MONITORING_ROLE Role part of agent identity If you are using SF Monitoring App, this may be set to a constant value fabric__SFRP_Monitoring. Please check existing value in your logs account and make sure that the value is set accordingly.
    MONITORING_NODETYPE Set to VMSS name depending on existing value.
    MONITORING_ROLE_INSTANCE RoleInstance part of agent identity. MA_RoleEnvironment_VMName is a variable set by Multi-Tenant MA service. To use this value, use the %% syntax so that variable is expanded. You may set this to %MA_RoleEnvironment_VMName%"
    MONITORING_NODENAME This value should be same as Service Fabric node name. If you have your role name of the format _<vmname>, you can set the value as _%MA_RoleEnvironment_VMName%. Or else simply use %MA_RoleEnvironment_VMName%
    MONITORING_MDM_ACCOUNT_NAME Required
    "ConstantVariables": {
        "MONITORING_TENANT": "<Tenant>",
        "MONITORING_ROLE": "<Role>",
        "MONITORING_NODETYPE": "[parameters('vmNodeType0Name')]"
    },
    "ExpandVariables": {
        "MONITORING_ROLE_INSTANCE": "%MA_RoleEnvironment_VMName%",
        "MONITORING_NODENAME": "_%MA_RoleEnvironment_VMName%"
    }
    

    To avoid race condition between user applications and Geneva Agent during startup, you need to configure Service Fabric VM extension to wait for Geneva Extension before bootstrapping Service Fabric node.

    To avoid the race, we need explicit configuration to express soft dependency between the two extensions. When following settings are added to Service Fabric extension, it periodically checks if Geneva Extension has launched agent instances and waits for a configured period of time for this process to complete.

    Setting Value Description
    WaitForProvisioningComplete bool Enable synchronization with Geneva extension. Default value is false. Allows customers to opt-in to the new behavior.
    WaitForProvisioningComplete bool Enable synchronization with Geneva extension. Default value is false. Allows customers to opt-in to the new behavior.
    ProvisioningCheckIntervalInSeconds int Interval to check Geneva Agent status using the contract provided by Geneva Extension. When all configured Geneva Agent instances are in ready state, the Service Fabric extension proceeds to bootstrap the node.
    MaxWaitDurationInSeconds int At the end of max wait duration, Service Fabric extension will stop checking and proceed regardless the state of the Geneva Agent.

    If I have answered your query, please click "Accept as answer" as a token of appreciation

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.