Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Baptiste GAILLET
    @bat79a
    Yes thx a lot ;p
    John Lithgow
    @johnlithgow88_gitlab

    Hi all,
    I am trying to enable prometheus metrics on the API gateway -- running on Openshift. No matter what i try , i get a connection refused error on port 18082.

    my gravitee.yaml contains:

    services:
      core:
        http:
          enabled: true
          port: 18082
          host: ${APIM3_GATEWAY_SERVICE_HOST}
          authentication:
            type: basic
            users:
              admin: adminadmin
          secured: false
      metrics:
        enabled: true
        prometheus:
          enabled: true

    on the gateway pod, I've tried:

    wget localhost:18082
    wget 127.0.0.1:18082
    wget <pod_id>:18082

    and all return : can't connect to remote host (xxxxxxxx): Connection refused

    Any Ideas? thanks in Advance

    1 reply
    John Lithgow
    @johnlithgow88_gitlab

    Hi all, when i set the JAVA_OPTS Environment variable with my own -Xms and -Xmx, it seems Gravitee is always appending -Xms512m -Xmx512m to the options. example , i set -Xmx to 1 GB, but some other process is appending -Xmx512m:

    JAVA_OPTS: -Djava.net.preferIPv4Stack=true -Xms512m -Xmx1g -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Xms512m -Xmx512m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8

    2 replies
    Baptiste GAILLET
    @bat79a

    Hi all.
    I'm trying to migrat from 3.8.6 to 3.9.4, but I have an error on my gateway and my management-api :

    Caused by: com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceed │
    │ ed memory limit of 104857600 bytes, but did not opt in to external sorting.' on server scw-my-server-name.mongodb.net:27xxx. The full response is {"ope │
    │ rationTime": {"$timestamp": {"t": 1632219698, "i": 3}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did │
    │  not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemoryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632219698, "i │
    │ ": 3}}, "signature": {"hash": {"$binary": "Kmwq5ieodKBkmxxxx=", "$type": "00"}, "keyId": {"$numberLong": "6975232359939440641"}}}}

    If someone know what append or what I'm doing wrong ?

    Eric
    @leleueri
    Hi @bat79a, Do you have a full stack trace to see where the exception is raised ?
    Baptiste GAILLET
    @bat79a
    yes sure, the full stack trace on the gateway logs is :
    Caused by: com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 byt │
    │ es, but did not opt in to external sorting.' on server scw-my-server-dev-shard-00-02.dje4n.mongodb.net:27xxx. The full response is {"operationTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "ok": 0. │
    │ 0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemoryLimitNoDiskUseAl │
    │ lowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkexxx=", "$type": "00"}, "keyId": {"$numberLong": "697523235993 │
    │ 9440641"}}}}                                                                                                                                                                                                │
    │     at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175)                                                                                                   │
    │     at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:303)                                                                            │
    │     at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:259)                                                                                           │
    │     at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)                                                                              │
    │     at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:450)                                                                                │
    │     at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)                                                                                                             │
    │     at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:226)                                                                                          │
    │     at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)                                                                                            │
    │     at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)                                                                                                    │
    │     at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)                                                                                                    │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:343)                                                                                                         │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:334)                                                                                                         │
    │     at com.mongodb.operation.CommandOperationHelper.executeCommandWithConnection(CommandOperationHelper.java:220)                                                                                           │
    │     at com.mongodb.operation.CommandOperationHelper$5.call(CommandOperationHelper.java:206)                                                                                                                 │
    │     at com.mongodb.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:463)
    AliFetvaci
    @aliFetvaci61
    Is gravitee API gateway async logging API call into elasticsearch or sync ?
    9 replies
    @brasseld @aelamrani
    Baptiste GAILLET
    @bat79a
    11:42:43.858 [vert.x-eventloop-thread-1] [] INFO  i.g.r.e.ElasticsearchReporter - Index mapping template successfully defined                                                                               │
    │ 11:42:47.971 [gio.sync-1] [] INFO  i.g.g.s.s.s.OrganizationSynchronizer - 0 organization(s) synchronized in 11ms.                                                                                           │
    │ 11:42:48.009 [gio.sync-1] [] ERROR i.g.g.services.sync.SyncManager - An error occurs while synchronizing APIs                                                                                               │
    │ org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: Sort exceeded memory limi │
    │ t of 104857600 bytes, but did not opt in to external sorting.' on server scw-my-server-name-shard-00-02.dje4n.mongodb.net:27xxx. The full response is {"operationTime": {"$timestamp": {"t": 1632224563,  │
    │ "i": 6}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeName": "QueryExceededMemo │
    │ ryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkekGCrkp8=", "$type": "00"}, "keyId": {"$numberLo │
    │ ng": "6975232359939440641"}}}}; nested exception is com.mongodb.MongoCommandException: Command failed with error 292 (QueryExceededMemoryLimitNoDiskUseAllowed): 'Error in $cursor stage :: caused by :: So │
    │ rt exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.' on server scw-gorenove-aws-dev-shard-00-02.dje4n.mongodb.net:27017. The full response is {"operationTime": {"$timesta │
    │ mp": {"t": 1632224563, "i": 6}}, "ok": 0.0, "errmsg": "Error in $cursor stage :: caused by :: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting.", "code": 292, "codeNa │
    │ me": "QueryExceededMemoryLimitNoDiskUseAllowed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1632224563, "i": 6}}, "signature": {"hash": {"$binary": "ojpLSHCcOzSFtJx5bRkekGCrkp8=", "$type": "00" │
    │ }, "keyId": {"$numberLong": "6975232359939440641"}}}}                                                                                                                                                       │
    │     at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:138)                                                                       │
    │     at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2774)                                                                                      │
    │     at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:540)                                                                                                                  │
    │     at org.springframework.data.mongodb.core.MongoTemplate.doAggregate(MongoTemplate.java:2094)                                                                                                             │
    │     at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:2064)                                                                                                               │
    │     at org.springframework.data.mongodb.core.MongoTemplate.aggregate(MongoTemplate.java:1963)                                                                                                               │
    │     at io.gravitee.repository.mongodb.management.internal.event.EventMongoRepositoryImpl.searchLatest(EventMongoRepositoryImpl.java:80)                                                                     │
    │     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Eric
    @leleueri
    How many events do you have in the events collection? Do you have indexes on it ? Here is the indexes we create on our mongo instance:
    db.getCollection(`events`).createIndex( { "type" : 1 } );
    db.getCollection(`events`).createIndex( { "updatedAt" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id":1, "type":1} );
    db.getCollection(`events`).reIndex();
    Baptiste GAILLET
    @bat79a
    I really don't know, how I can check this ?
    Eric
    @leleueri
    Baptiste GAILLET
    @bat79a
    I think that I have 662 docs in the events collection with a document like that for the first one :
    {"_id":"xxxxxx","type":"START_API","payload":"{\n  \"id\" : \"xxxxxx\",\n  \"environmentId\" : \"DEFAULT\",\n  \"name\" : \"TEST API\",\n  \"description\" : \"TEST d'une api après installation from scratch\",\n  \"version\" : \"0.1.0\",\n  \"definition\" : \"{\\n  \\\"id\\\" : \\\"xxxxxxxxxxxx\\\",\\n  \\\"name\\\" : \\\"TEST API\\\",\\n  \\\"version\\\" : \\\"0.1.0\\\",\\n  \\\"proxy\\\" : {\\n    \\\"virtual_hosts\\\" : [ {\\n      \\\"path\\\" : \\\"/qmaster-version\\\"\\n    } ],\\n    \\\"strip_context_path\\\" : false,\\n    \\\"preserve_host\\\" : false,\\n    \\\"groups\\\" : [ {\\n      \\\"name\\\" : \\\"default-group\\\",\\n      \\\"endpoints\\\" : [ {\\n        \\\"name\\\" : \\\"default\\\",\\n        \\\"target\\\" : \\\"https://xxx.fr/version/\\\",\\n        \\\"weight\\\" : 1,\\n        \\\"backup\\\" : false,\\n        \\\"type\\\" : \\\"HTTP\\\",\\n        \\\"inherit\\\" : true\\n      } ],\\n      \\\"load_balancing\\\" : {\\n        \\\"type\\\" : \\\"ROUND_ROBIN\\\"\\n      },\\n      \\\"http\\\" : {\\n        \\\"connectTimeout\\\" : 5000,\\n        \\\"idleTimeout\\\" : 60000,\\n        \\\"keepAlive\\\" : true,\\n        \\\"readTimeout\\\" : 10000,\\n        \\\"pipelining\\\" : false,\\n        \\\"maxConcurrentConnections\\\" : 100,\\n        \\\"useCompression\\\" : true,\\n        \\\"followRedirects\\\" : false\\n      }\\n    } ]\\n  },\\n  \\\"paths\\\" : {\\n    \\\"/\\\" : [ ]\\n  }\\n}\",\n  \"deployedAt\" : 1590144654223,\n  \"createdAt\" : 1590140383716,\n  \"updatedAt\" : 1590144654223,\n  \"visibility\" : \"private\",\n  \"lifecycleState\" : \"started\",\n  \"apiLifecycleState\" : \"created\"\n}","properties":{"api_id":"xxx","origin":"xxx","user":"xxx"},"createdAt":{"$date":"2020-05-22T10:50:54.223Z"},"updatedAt":{"$date":"2020-05-22T10:50:54.223Z"},"_class":"io.gravitee.repository.mongodb.management.internal.model.EventMongo","environments":["DEFAULT"]}

    and the index is

    _id_ (or _id)

    with a size of 98,3kb

    Eric
    @leleueri
    Is it possible to create the indexes and see if it fixes the error?
    db.getCollection(`events`).createIndex( { "type" : 1 } );
    db.getCollection(`events`).createIndex( { "updatedAt" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id" : 1 } );
    db.getCollection(`events`).createIndex( { "properties.api_id":1, "type":1} );
    db.getCollection(`events`).reIndex();
    Baptiste GAILLET
    @bat79a
    reIndex is unauthorized for the atlas mongoDB cluster ? But I think that the commands fix the problem ;p
    Thx a lot, I will make some tests and verification.
    Thank you so much @leleueri
    AliFetvaci
    @aliFetvaci61
    gravitee-io/issues#6177 @brasseld @leleueri
    Dietrich Schulten
    @dschulten
    The Enable Emailing option in Settings-Settings/Smtp is disabled, I cannot enable the checkbox. Why is that? Can I somehow make the Smtp section editable?
    1 reply
    Vivek Gupta
    @vivekgupta8983
    Hi All,
    I had to deploy Graviteeio AM on Kubernetes using helm chart but management-api and gateway give me 404 not found can anyone help ho to resolve it
    6 replies

    graviteeio-am3-gateway am-auth.dev.k8s.kalisseo.dappit.fr
    graviteeio-am3-management-api am-mgmt.auth.dev.k8s.kalisseo.dappit.fr
    graviteeio-am3-management-ui am.auth.dev.k8s.kalisseo.dappit.fr

    This are the URL's

    26 replies
    Vivek Gupta
    @vivekgupta8983

    Hi All,

    I am facing difficulty in deploy Gravitee APIM3x here is my configuration file http://pastie.org/p/1NJIj4XMwRRg1ncqjtIrmy this is the my URL path https://apim.dev.k8s.kalisseo.dappit.fr/

    Dietrich Schulten
    @dschulten

    @brasseld Gravitee is running in docker and we have used environment vars, but not to specify smtp settings. I believe they would have to be set on the apim-management-api container:

    management_api:
        image: ${DOCKER_REGISTRY_MIRROR:-}graviteeio/apim-management-api:${GRAVITEE}
        hostname: management
        restart: always
        ports:
          - 8083:8083
        environment:
          - gravitee_management_mongodb_uri=mongodb://${MONGODB_HOST}/gravitee?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
          - gravitee_analytics_elasticsearch_endpoints_0=${ELASTICSEARCH_URL_0}

    Even the manual shows a deactivated SMTP section in settings: https://docs.gravitee.io/apim/3.x/apim_installguide_rest_apis_configuration.html#smtp-configuration. What causes those settings to be deactivated?

    2 replies
    Jonathan Bennett
    @JonathanBennett
    Has anyone seen before in the portal when you click ‘gateways’ it just returns ‘null’ and in the error log there’s a numeric exception?
    2 replies
    Victor Dusautois
    @vdusauto
    Hello, We are experiencing issues with JWT plan : Signed JWT rejected: Another algorithm expected, or no matching key(s) found
    Some APIs work, some just don't (APIM 3.10). Any insight on where to look ? Thanks !
    7 replies
    Stephen Nguyen
    @huynq33
    Anyone can show me how to add TRY IT OUT with redoc swagger mode in portal ? It's very important for my company. Thanks
    1 reply
    AliFetvaci
    @aliFetvaci61
    ElementalArchmage
    @ElementalArchmage
    Hello! Which tls version protocols and ciphers are used in gravitee gateway and apim by default? How I can change them?
    4 replies
    Tanking
    @Tank-zhu
    hi
    client_id Where did it come from ???
    3 replies
    Tanking
    @Tank-zhu
    image.png
    AliFetvaci
    @aliFetvaci61
    Thiago Lins
    @thiagolinsx
    image.png
    Email validation in gravitee am is invalidating valid emails.
    Michel Dirix
    @micheldirix_twitter
    Hello. I have installed API Management 3.0.4 on a production server. I would like to deploy the latest version on a new server with this data. I have done a mongodump and run the migration scripts to get to the updated version.
    When I run Gravitee, I get messages about apis and applications "has no identified owners in the list". How can I fix that ?
    Andrea Rossi
    @andrea.rossi_gitlab

    Hi, I'm new to Kubernetes, but not to Gravity. I'm on Kubernetes 1.22.2 version (minikube) and using helm 3.6.3 . I'm trying to deploy AM like described here https://docs.gravitee.io/am/current/am_installguide_kubernetes.html but I get:

    `Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "extensions/v1beta1"    `

    What can I do? @brasseld

    8 replies
    Andy Johnson
    @andy-22
    Hi, I am trying to follow developer setup guide at https://docs.gravitee.io/apim/3.x/apim_devguide_bootstrap.html and I cloned master branches of all four repositories mentioned. Setup Intellij project exactly as mentioned and when I Build Rest API project, I get the following error:
    java: package io.gravitee.rest.api.service.swagger.converter.extension does not exist
    32 replies
    When I run Gateway, I get tons of errors as well as seen in the screenshot below:
    image001.png
    Can someone please help me so that I can move on with my setup?
    Also I would like to know what changes do I need to make for the plugins developed for version 1.x to work with latest version 3.11
    I have developed quite a few plugins with the current version of our gravitee 1.19
    Ioannis Ntantis
    @giannisapi
    Hi All, I have one question regarding tenants. I can see that when I define an endpoint configuration, I can associate it with one or more tenants.
    What I can not figure out is, how tenant is identified during runtime and when someone tries to consume my api. If you could also point me to some documentation about it, it would be great
    2 replies
    Andrea Rossi
    @andrea.rossi_gitlab

    I'm trying to deploy Gravitee AM on Kubernetes (Minikube) but I get "io.vertx.core.VertxException: Thread blocked".

    Opened an issue too: gravitee-io/issues#6303

    My current setup is:

    • OS: Fedora 34 (Linux)
    • Kubernetes distribution: Minikube 1.23.2
    • Kubernetes version: 1.21.5
    • Helm version: 3.6 or 3.7 (I'll check it later)
    • Docker version: 20 (using docker as Minikube driver)
    • Helm charts: official AM 3.11 Helm charts (no editing)

    Here the steps to reproduce the problem:

    1. Install Minikube
    2. Install Helm via script
    3. Install and start Docker
    4. Add user to Docker group so it can use docker even if not root
    5. Start Minikube minikube start --addons ingress --kubernetes-version=v1.21.5
    6. Bring up Gravitee AM helm install graviteeio-am graviteeio/am --set ui.service.type=NodePort --set mongodb-replicaset.enabled=true --set "mongo.uri=mongodb+srv://graviteeio-am-mongodb-replicaset.default.svc.cluster.local/?tls=false&ssl=false" --set api.service.type=NodePort --set gateway.service.type=NodePort
    7. Gateway and Management API cannot properly boot due to a long stack trace with root io.vertx.core.VertxException: Thread blocked

    What can I do? @brasseld any suggestions?

    1 reply
    Thiago Lins
    @thiagolinsx
    I'm going to update the gravitee versions on my server now. Can I go straight to 3.12? (Still no migration guide in documentation or is there a breakchange?)
    Eric
    @leleueri
    Hi @thiagolinsx, the documentation isn't yet released but I can say that there are some attention points on APIM & AM for the 3.12.
    For APIM, you can find the information here https://github.com/gravitee-io/release/blob/master/upgrades/3.x/3.12.0/README.adoc