Erstellen einer Service-Instanz für Cognos Analytics mit dem cpd-cli service-instance create Befehl

Nach der Installation müssen Sie mindestens eine Cognos Analytics Cognos Analytics Service-Instanz erstellen. Jede Service-Instanz muss sich in einem anderen Red Hat® OpenShift® Container Platform Projekt befinden. Sie können eine Service-Instanz im Operandenprojekt oder in einem Projekt erstellen, das mit dem Operandenprojekt verknüpft ist. Wenn Sie ein IBM® Software Hub Benutzer sind, können Sie den cpd-cli service-instance create Befehl verwenden, um den Prozess der Erstellung von Service-Instanzen zu skripten.

Wer muss diese Aufgabe erledigen?
Um eine Serviceinstanz mithilfe von zu erstellen cpd-cli, müssen Sie über die Berechtigung „Serviceinstanzen erstellen (can_provision)“ IBM Software Hubin verfügen.
Wann müssen Sie diese Aufgabe erledigen?
Führen Sie diese Aufgabe nur aus, wenn Sie eine Dienstinstanz aus der cpd-cli mit dem cpd-cli service-instance create Befehl erstellen möchten.
Alternative Methoden zum Erstellen einer Service-Instanz

Erforderliche Informationen zum Ausführen dieser Task

Überprüfen Sie die folgenden Informationen, bevor Sie eine Serviceinstanz für erstellen Cognos Analytics :

Versionsvoraussetzungen

Alle Komponenten, die mit einer Instanz von verbunden IBM Software Hub sind, müssen in derselben Version installiert oder erstellt werden. Wenn beispielsweise in Version Cognos Analytics 5.3.1 installiert ist, müssen Sie die Dienstinstanz in Version erstellen 5.3.1.

Wichtig: Cognos Analytics verwendet eine andere Versionsnummer als IBM Software Hub. Dieses Thema enthält eine Tabelle, die die Cognos Analytics Version für jede Aktualisierung von IBM Software Hubanzeigt. Verwenden Sie diese Tabelle, um die richtige Version basierend auf der installierten Version IBM Software Hub von zu finden.
Umgebungsvariablen

Die Befehle in dieser Aufgabe verwenden Umgebungsvariablen, sodass Sie die Befehle genau wie angegeben ausführen können.

  • Wenn Sie nicht über das Skript verfügen, das die Umgebungsvariablen definiert, lesen Sie den Abschnitt „Einrichten der Installationsumgebungsvariablen “.
  • Um die Umgebungsvariablen aus dem Skript zu verwenden, müssen Sie die Umgebungsvariablen vor der Ausführung der Befehle in dieser Aufgabe laden. Führen Sie beispielsweise folgenden Befehl aus:
    source ./cpd_vars.sh

Vorbereitende Schritte

Diese Aufgabe setzt voraus, dass die folgenden Voraussetzungen erfüllt sind:

Voraussetzung Weiterführende Informationen
Cognos Analytics ist installiert. Wenn diese Aufgabe nicht abgeschlossen ist, siehe Installation Cognos Analytics.
Die cpd-cli Befehlszeilenschnittstelle wird auf der Workstation installiert, von der aus Sie die Dienstinstanz erstellen werden. Wenn diese Aufgabe nicht abgeschlossen ist, siehe Einrichten einer Client-Workstation.
Sie haben ein Cloud Pak for Data Benutzerprofil auf der Workstation erstellt, von der aus Sie die Service-Instanz erstellen werden.

Das Profil muss einem Benutzer zugeordnet sein, der über die Berechtigung „Serviceinstanzen erstellen (can_provision)“ Cloud Pak for Datain verfügt.

Wenn diese Aufgabe nicht abgeschlossen ist, lesen Sie Erstellen eines Profils, um die cpd-cli-Verwaltungsbefehle zu verwenden.
Der Content Store ist konfiguriert. Sie können den Content Store auch für Ihre Audit-Inhalte verwenden.
Wichtig: Wenn Sie Ihre Instanz bereitstellen, müssen Sie denselben IAM-Modus wie Ihr Content-Store verwenden.
Wenn diese Aufgabe nicht abgeschlossen ist, lesen Sie den Abschnitt „Konfigurieren des Inhaltsspeichers für Cognos Analytics “.

Sie müssen über genügend Ressourcen für den von Ihnen ausgewählten Planumfangverfügen. Wenn Sienicht über genügend Ressourcen verfügen, kann die Instanz nicht erstellt werden.

Ermitteln Sie anhand der folgenden Tabelle den Planumfang,der beim Erstellen der Instanz verwendet werden soll. Die Informationen in der Tabelle stellen die Gesamtressourcen dar, die von allen Pods benötigt werden, aus denen die Cognos Analytics Instanz besteht. Die Ressourcenkönnen auf den Knoten in Ihrem Cluster verteilt vorliegen. Die Knoten müssen jedoch überausreichende Kapazität für die Ausführung der Pods verfügen.
Hinweis: Die Speicher- und Speicherplatzanforderungen werden sowohl in Gi als auch in GB angegeben. Die Werte in GB werden auf die nächste ganze Zahl aufgerundet.
Planumfang Mindestens erforderliche Ressourcen Maximal erforderliche Ressourcen Größter Pod
Fester Mindestumfang Im gesamten Cluster müssen mindestens folgende Ressourcen verfügbar sein:
  • Kerne: 10
  • Speicher: 40 Gi (ca. 42 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Temporärer Speicher: 26 Gi (ca. 28 GB)
Die Instanz verwendet höchstens:
  • Kerne: 10
  • Speicher: 40 Gi (ca. 42 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Temporärer Speicher: 26 Gi (ca. 28 GB)
Der größte Pod benötigt maximal Ressourcen im folgenden Umfang:
  • Kerne: 2.6
  • Speicher: 13 Gi (ca. 14 GB)
sehr klein Im gesamten Cluster müssen mindestens folgende Ressourcen verfügbar sein:
  • Kerne: 9.4
  • Speicher: 38.5 Gi (ca. 41 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Kurzfristiger Speicher: 26.6 Gi (ca. 28.6 GB)
Die Instanz verwendet höchstens:
  • Kerne: 16
  • Speicher: 72.9 Gi (ca. 78 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Kurzfristiger Speicher: 42.2 Gi (ca. 45.3 GB)
Der größte Pod benötigt maximal Ressourcen im folgenden Umfang:
  • Kerne: 2.6
  • Speicher: 13 Gi (ca. 14 GB)
Klein oder Klein mit minimalen reservierten CPU-Ressourcen Im gesamten Cluster müssen mindestens folgende Ressourcen verfügbar sein:
  • Kerne: 9.4
  • Speicher: 40.5 Gi (ca. 43 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Kurzfristiger Speicher: 26.6 Gi (ca. 28.6 GB)
Die Instanz verwendet höchstens:
  • Kerne: 16
  • Speicher: 76.9 Gi (ca. 82.5 GB)
  • Speicher: 2,2 Gi (Circa 2,4 GB)
  • Kurzfristiger Speicher: 42.2 Gi (ca. 45.3 GB)
Der größte Pod benötigt maximal Ressourcen im folgenden Umfang:
  • Kerne: 2.6
  • Speicher: 13 Gi (ca. 14 GB)
Mittel Im gesamten Cluster müssen mindestens folgende Ressourcen verfügbar sein:
  • Kerne: 24
  • Speicher: 78.9 Gi (ca. 84.7 GB)
  • Speicher: 4,2 Gi (Circa 4,5 GB)
  • Temporärer Speicher: 21.6 Gi (ca. 23 GB)
Die Instanz verwendet höchstens:
  • Kerne: 31.4
  • Speicher: 103.2 Gi (ca. 110.8 GB)
  • Speicher: 4,2 Gi (Circa 4,5 GB)
  • Kurzfristiger Speicher: 52.6 Gi (ca. 56.5 GB)
Der größte Pod benötigt maximal Ressourcen im folgenden Umfang:
  • Kerne: 3.6
  • Speicher: 13 Gi (ca. 14 GB)
Groß Im gesamten Cluster müssen mindestens folgende Ressourcen verfügbar sein:
  • Kerne: 30
  • Speicher: 80.4 Gi (ca. 86.3 GB)
  • Speicher: 8,2 Gi (Circa 8,8 GB)
  • Kurzfristiger Speicher: 72.2 Gi (ca. 77.5 GB)
Die Instanz verwendet höchstens:
  • Kerne: 53
  • Speicher: 141.6 Gi (ca. 152 GB)
  • Speicher: 8,2 Gi (Circa 8,8 GB)
  • Kurzfristiger Speicher: 118.2 Gi (ca. 126.9 GB)
Der größte Pod benötigt maximal Ressourcen im folgenden Umfang:
  • Kerne: 4.6
  • Speicher: 13 Gi (ca. 14 GB)

Vorgehensweise

Führen Sie die folgenden Schritte aus, um eine Serviceinstanz zu erstellen:

  1. Erstellen einer Service-Instanz
  2. Überprüfen, ob die Service-Instanz erstellt wurde
  3. Was als Nächstes zu tun ist

Serviceinstanz erstellen

Erstellen Sie die Serviceinstanz wie folgt:

  1. Wechseln Sie zu dem Verzeichnis auf Ihrer Workstation, in dem Sie die JSON-Datei erstellen möchten, die die Nutzlast der Serviceinstanz definiert.
  2. Legen Sie die Umgebungsvariablen fest, die zum Ausfüllen der JSON-Nutzlast für die Serviceinstanz verwendet werden:
    1. Setzen Sie die INSTANCE_NAME Umgebungsvariable auf den eindeutigen Namen, den Sie als Anzeigenamen für die Dienstinstanz verwenden möchten:
      export INSTANCE_NAME="<display-name>"

      Dieser Name wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.

      Der Anzeigename ist ein string und kann alphanumerische Zeichen (a-z, A-Z, 0-9), Leerzeichen ( ), Bindestriche (-), Unterstriche (_) und Punkte (.) enthalten. Achten Sie darauf, den Anzeigenamen in Anführungszeichen zu setzen, wie im vorangehenden export Befehl gezeigt.

    2. Setzen Sie die INSTANCE_DESCRIPTION Umgebungsvariable auf die Beschreibung, die Sie für die Serviceinstanz verwenden möchten:
      export INSTANCE_DESCRIPTION="<description>"

      Diese Beschreibung wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.

      Die Beschreibung ist ein string und kann alphanumerische Zeichen, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Achten Sie darauf, den Anzeigenamen in Anführungszeichen zu setzen, wie im vorstehenden export Befehl gezeigt.

    3. Setzen Sie die INSTANCE_VERSION Umgebungsvariable auf die Version, die der Version von IBM Software Hub auf Ihrem Cluster entspricht:
      export INSTANCE_VERSION=<version>

      Verwenden Sie die folgende Tabelle, um den geeigneten Wert zu ermitteln:

      IBM Software Hub-Version Version der Serviceinstanz
      5.3.1 29.1.0
      5.3.0 29.0.0
    4. Legen Sie das INSTANCE_PROJECT auf das Projekt fest, in dem Sie die Service-Instanz erstellen möchten:
      Erstellen Sie die Service-Instanz im Operandenprojekt
      export INSTANCE_PROJECT=${PROJECT_CPD_INST_OPERANDS}

      Der Befehl verwendet die PROJECT_CPD_INST_OPERANDS Variable, die bereits in Ihrem Skript für die Installationsumgebungsvariablen definiert ist.


      Erstellen Sie die Service-Instanz in einem angebundenen Projekt
      Wichtig: Wenn mehrere verbundene Projekte mit dieser Instanz von IBM Software Hubverknüpft sind, stellen Sie sicher, dass die ${PROJECT_CPD_INSTANCE_TETHERED} Umgebungsvariable auf den richtigen Projektnamen gesetzt ist, bevor Sie den export Befehl ausführen:
      echo $PROJECT_CPD_INSTANCE_TETHERED
      export INSTANCE_PROJECT=${PROJECT_CPD_INSTANCE_TETHERED}

      Beachten Sie: Sie können in jedem Projekt nur eine Service-Instanz erstellen.
    5. Setzen Sie die CONTENT_STORE_CONNECTION_NAME Umgebungsvariable auf den Namen der Plattformverbindung, die Sie erstellt haben, um eine Verbindung zum Content Store für die Serviceinstanz herzustellen.
      export CONTENT_STORE_CONNECTION_NAME=<connection-display-name>
    6. Legen Sie die CONTENT_STORE_CONNECTION_PROPS Umgebungsvariable fest, je nachdem, ob Sie zusätzliche Eigenschaften angeben müssen, um über eine Verbindung zum Content JDBC Store herzustellen:
      • Wenn Sie keine zusätzlichen Verbindungseigenschaften angeben müssen, legen Sie Folgendes fest:
        export CONTENT_STORE_CONNECTION_PROPS=""
      • Wenn Sie zusätzliche Verbindungseigenschaften angeben müssen, geben Sie eine durch Semikolons getrennte Liste von Schlüssel-Wert-Paaren an:
        export CONTENT_STORE_CONNECTION_PROPS=<key1=value1;key2=value2;...>
    7. Setzen Sie die AUDIT_DB_CONNECTION_NAME Umgebungsvariable auf den Namen der Plattformverbindung, die Sie erstellt haben, um eine Verbindung zur Audit-Datenbank für die Serviceinstanz herzustellen.
      export AUDIT_DB_CONNECTION_NAME=<connection-display-name>
    8. Legen Sie die AUDIT_DB_CONNECTION_PROPS Umgebungsvariable fest, je nachdem, ob Sie zusätzliche Eigenschaften angeben müssen, um über eine Verbindung zur JDBC Audit-Datenbank herzustellen:
      • Wenn Sie keine zusätzlichen Verbindungseigenschaften angeben müssen, legen Sie Folgendes fest:
        export AUDIT_DB_CONNECTION_PROPS=""
      • Wenn Sie zusätzliche Verbindungseigenschaften angeben müssen, geben Sie eine durch Semikolons getrennte Liste von Schlüssel-Wert-Paaren an:
        export AUDIT_DB_CONNECTION_PROPS=<key1=value1;key2=value2;...>
    9. Legen Sie die Umgebungsvariable INSTANCE_SIZE fest. Die Größe bestimmt die Ressourcen, die der Service-Instanz zugewiesen werden.
      export INSTANCE_SIZE=<size>
      Gültige Werte:
      • small_mincpureq
      • fixedminimum
      • xsmall
      • small
      • medium
      • large

      Weitere Informationen zu den Ressourcen, die mit den einzelnen Größen verbunden sind, finden Sie im PDF-Dokument mit Hinweisen zur Skalierung von Komponenten, das Sie unter IBM Entitled Registry. herunterladen können.

    10. Legen Sie die FIPS_MODEFIPS_MODE_LABEL Umgebungsvariablen und fest, je nachdem, ob FIPS auf dem Cluster aktiviert ist:
      • Wenn FIPS auf dem Cluster nicht aktiviert ist, legen Sie Folgendes fest:
        export FIPS_MODE=""
        export FIPS_MODE_LABEL=""
      • Wenn FIPS auf dem Cluster aktiviert ist, legen Sie Folgendes fest:
        export FIPS_MODE=FIPS_140
        export FIPS_MODE_LABEL="FIPS 140-2"
    11. Wenn Sie Berichte per E-Mail versenden möchten, legen Sie die folgenden Umgebungsvariablen fest, um eine Verbindung zu einem SMTP-Server herzustellen.

      Sie können den IBM Software Hub SMTP-Server oder einen separaten SMTP-Server verwenden.

      1. Setzen Sie die SMTP_ADDRESS Umgebungsvariable auf die IP-Adresse oder den vollqualifizierten Domänennamen Ihres SMTP-Servers:
        export SMTP_ADDRESS=<server-address>
      2. Setzen Sie die SMTP_PORT Umgebungsvariable auf die Portnummer Ihres SMTP-Servers.
        Wichtig: Wenn Sie einen sicheren Port angeben, müssen Sie auch die SMTP_TLS_CHECK Umgebungsvariable auf setzen true und die SMTP_CERT Umgebungsvariable auf das Zertifikat „ TLS “ für Ihren SMTP-Server setzen.
        export SMTP_PORT=<port-number>
      3. Legen Sie die SMTP_TLS_CHECK Umgebungsvariable entsprechend fest, je nachdem, ob Sie eine Verbindung zu einem sicheren Port auf Ihrem SMTP-Server herstellen:
        • Wenn Sie eine Verbindung zu einem sicheren Port herstellen, legen Sie Folgendes fest:
          export SMTP_TLS_CHECK=true
        • Wenn Sie eine Verbindung zu einem unsicheren Port herstellen, legen Sie Folgendes fest:
          export SMTP_TLS_CHECK=false
      4. Legen Sie die SMTP_TLS_CERT Umgebungsvariable entsprechend fest, je nachdem, ob Sie eine Verbindung zu einem sicheren Port auf Ihrem SMTP-Server herstellen:
        • Wenn Sie eine Verbindung zu einem sicheren Port herstellen, setzen Sie die SMTP_TLS_CERT Umgebungsvariable auf den Inhalt des Zertifikats „ TLS “.
          export SMTP_TLS_CERT="-----BEGIN CERTIFICATE-----
          <certificate-content>
          -----END CERTIFICATE-----"
        • Wenn Sie eine Verbindung zu einem unsicheren Port herstellen, legen Sie Folgendes fest:
          export SMTP_TLS_CERT=""
      5. Legen Sie die SMTP_USERNAME Umgebungsvariable entsprechend der Authentifizierungsanforderungen Ihres SMTP-Servers fest:
        • Wenn Ihr SMTP-Server eine Authentifizierung erfordert, setzen Sie die SMTP_USERNAME Umgebungsvariable auf den Benutzernamen eines SMTP-Serverbenutzers:
          export SMTP_USERNAME=<username>
        • Wenn Ihr SMTP-Server keine Authentifizierung erfordert, legen Sie Folgendes fest:
          export SMTP_USERNAME=""
      6. Legen Sie die SMTP_PASSWORD Umgebungsvariable entsprechend der Authentifizierungsanforderungen Ihres SMTP-Servers fest:
        • Wenn Ihr SMTP-Server eine Authentifizierung erfordert, setzen Sie die SMTP_PASSWORD Umgebungsvariable auf das Passwort des SMTP-Serverbenutzers, den Sie im vorherigen Schritt angegeben haben:
          export SMTP_PASSWORD=<password>
        • Wenn Ihr SMTP-Server keine Authentifizierung erfordert, legen Sie Folgendes fest:
          export SMTP_PASSWORD=""
      7. Legen Sie die SMTP_DEFAULT_SENDER Umgebungsvariable entsprechend der Frage fest, ob Ihr SMTP-Server einen Mailer-Daemon zum Senden von Nachrichten verwendet:
        • Wenn Ihr SMTP-Server keinen Mailer-Daemon zum Senden von Mitteilungen verwendet, setzen Sie die SMTP_DEFAULT_SENDER auf die E-Mail-Adresse, von der aus Sie Mitteilungen senden möchten:
          export SMTP_DEFAULT_SENDER=<email-address>
        • Wenn Ihr SMTP-Server einen Mailer-Daemon zum Senden von Nachrichten verwendet, Sie jedoch den Standardabsender überschreiben möchten, setzen Sie die SMTP_DEFAULT_SENDER auf die E-Mail-Adresse, von der aus Sie Nachrichten senden möchten:
          export SMTP_DEFAULT_SENDER=<email-address>
        • Wenn Ihr SMTP-Server einen Mailer-Daemon verwendet und Sie Nachrichten über den Mailer-Daemon versenden möchten, legen Sie Folgendes fest:
          export SMTP_DEFAULT_SENDER=""
  3. Erstellen Sie die cognos-analytics-instance.json Nutzlastdatei.

    Der Befehl, den Sie ausführen, hängt davon ab, ob Sie eine Verbindung zu einem SMTP-Server herstellen möchten, um Berichte per E-Mail zu versenden:

    Nutzlast mit SMTP-Parametern
    cat << EOF
    {
        "addon_type": "cognos-analytics-app",
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${TETHERED_NAMESPAE}",
        "addon_version": "${ADDON_VERSION}",
        "create_arguments": {
            "deployment_id": "",
            "parameters": {
                "fileStorageClass": "${STG_CLASS_FILE}",
                "blockStorageClass": "${STG_CLASS_BLOCK}",
                "fips": "${FIPS_MODE_LABEL}",
                "planSize": "${PLAN_SIZE}",
                "audit": "${AUDIT_CONNECTION_NAME}",
                "auditProperty": "${AUDIT_DB_CONNECTION_PROPS}",
                "cs": "${CONTENT_STORE_CONNECTION_NAME}",
                "csProperty": "${CONTENT_STORE_CONNECTION_PROPS}",
                "smtp_address": "${SMTP_ADDRESS}",
                "smtp_port": "${SMTP_PORT}",
                "smtp_defaultSender": "${SMTP_DEFAULT_SENDER}",
                "smtp_name": "${SMTP_USERNAME}",
                "smtp_password": "${SMTP_PASSWORD}",
                "smtp_tlsCheck": "${SMTP_TLS_CHECK}",
                "smtp_tlsEnabledCert": "${SMTP_TLS_CERT}"
            },
            "resources": {},
            "description": "${INSTANCE_DESCRIPTION}",
            "owner_username": ""
        },
        "transient_fields": {}
    }
    EOF
    Nutzlast ohne SMTP-Parameter
    cat << EOF
    {
        "addon_type": "cognos-analytics-app",
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${TETHERED_NAMESPAE}",
        "addon_version": "${ADDON_VERSION}",
        "create_arguments": {
            "deployment_id": "",
            "parameters": {
                "fileStorageClass": "${STG_CLASS_FILE}",
                "blockStorageClass": "${STG_CLASS_BLOCK}",
                "fips": "${FIPS_MODE_LABEL}",
                 "planSize": "${PLAN_SIZE}",
                 "audit": "${AUDIT_CONNECTION_NAME}",
                 "auditProperty": "${AUDIT_DB_CONNECTION_PROPS}",
                 "cs": "${CONTENT_STORE_CONNECTION_NAME}",
                 "csProperty": "${CONTENT_STORE_CONNECTION_PROPS}"
            },
            "resources": {},
            "description": "${INSTANCE_DESCRIPTION}",
            "owner_username": ""
        },
        "transient_fields": {}
    }
    EOF
    Die folgenden Umgebungsvariablen verwenden die Werte, die bereits in Ihrem Skript für Installationsumgebungsvariablen definiert sind:
    • ${STG_CLASS_BLOCK}
    • ${STG_CLASS_FILE}
  4. Setzen Sie die PAYLOAD_FILE Umgebungsvariable auf den vollqualifizierten Namen der JSON-Payload-Datei auf Ihrer Workstation:
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. Erstellen Sie die Service-Instanz aus der Payload-Datei:
    cpd-cli service-instance create \
    --profile=${CPD_PROFILE_NAME} \
    --from-source=${PAYLOAD_FILE}

Überprüfen, ob die Service-Instanz erstellt wurde

Um zu überprüfen, ob die Service-Instanz erstellt wurde, führen Sie den folgenden Befehl aus:

cpd-cli service-instance status ${INSTANCE_NAME} \
--profile=${CPD_PROFILE_NAME} \
--output=json
  • Wenn der Befehl zurückkehrt RUNNING, wurde die Dienstinstanz erfolgreich erstellt.
  • Wenn der Befehl zurückgegeben wird PROVISION_IN_PROGRESS, warten Sie einige Minuten und führen Sie den Befehl erneut aus.
  • Wenn der Befehl zurückgibt FAILED, überprüfen Sie die Pod-Protokolle für die ibm-cognos-addon-sp-deployment-*Pods, ibm-ca-operator-controller-manager-*zen-watcher , zen-core-api und auf mögliche Ursachen.

Nächste Schritte

Wichtig: Beschränken Sie den Benutzerzugriff auf den Content Store. Siehe Aktualisieren der Sicherheitseinstellungen.
Sie müssen den Benutzern Zugriff auf die Service-Instanz gewähren. Weitere Informationen finden Sie unter „Benutzer verwalten“ ( Cognos Analytics ).