Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:21

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:19

    asahd on master

    Restore nginx.conf.example (compare)

  • Sep 11 2018 10:05

    asahd on v2.5.2

    (compare)

  • Sep 11 2018 10:04

    asahd on feature-symantic

    (compare)

  • Sep 11 2018 10:04

    asahd on master

    Added full document toggle to s… Added post and patch metadata. Updated Metadata to update stat… and 6 more (compare)

  • Sep 11 2018 10:04
    asahd closed #1232
  • Sep 11 2018 09:05
    asahd labeled #1232
  • Sep 11 2018 09:05
    asahd unlabeled #1232
  • Sep 11 2018 08:42
    asahd synchronize #1232
  • Sep 11 2018 08:42

    asahd on feature-symantic

    Fixes statement creations being… (compare)

  • Sep 10 2018 15:07

    happy-machine on Statement_component

    fixed default naming in Stateme… (compare)

  • Sep 10 2018 12:45
    asahd synchronize #1232
  • Sep 10 2018 12:45

    asahd on feature-symantic

    Changes Forwarding UI, updates … (compare)

  • Sep 10 2018 11:45
    ht2 synchronize #1232
  • Sep 10 2018 11:45

    ht2 on feature-symantic

    Start of shareable dashboards u… Removed filter required paramet… Added validation for shareable … and 49 more (compare)

  • Sep 04 2018 16:29
    cutz opened #1246
  • Sep 04 2018 14:20
    samjaved closed #1245
  • Aug 30 2018 22:20
    ryansmith94 assigned #1242
  • Aug 30 2018 16:43

    happy-machine on Statement_component

    working as Map (compare)

Lee Kirkland
@caperneoignis
Then*
Ryan Smith
@ryansmith94
@kasirajr the target storageDir should match the FS_LOCAL_STORAGE_DIR in the new xAPI service .env file
Okay thanks for clarification @caperneoignis, let me discuss this with James
Ryan Smith
@ryansmith94
Okay discussed with James, so the solution for now is to delete all the state that was created while the storage was read only
Ideally the content would handle this more gracefully, we can't really change the response to 404 because it could just be temporary storage down time
In which case a 5xx response makes sense
Kasi Raj
@kasirajr
@ryansmith94 but that field is commented in my .env field, I created the llv4 from aws community ami
should I enter the path and restart using pm2?
Kasi Raj
@kasirajr
Screenshot 2019-11-28 at 4.38.38 PM.png
Can someone tell me why my xapi service is in development and why two xapi service are running
Lee Kirkland
@caperneoignis
@ryansmith94 yep, I ended up doing that yesterday after tracking down all the 500 returns and just deleting them. Noticed that fixed the state, because the content saw 404 and just resent the state. But understand the 500 error from your point of view.
devix3
@devix3
@ryansmith94 If i have LL working in my lan and with the xApi correctly configured on 192.168.1.224:8081 for clients statements saving, is it enough to configure a port-forwarding on the router to make the LL server accept statements from an external moodle portal?
Such as 8090 as external port and 8081 as internal port for the 192.168.1.224 local LL interface.
Ryan Smith
@ryansmith94
@kasirajr in that case it will be using the default value which is just /storage in the xapi folder of your LL installation
We'd recommend using S3 or something similar in production so that you can load balance Learning Locker when necessary
Hey @caperneoignis, glad you've resolved that and thanks for understanding it from our POV
Ryan Smith
@ryansmith94
@devix3 not sure I understand why you'd want to do that
ian maher
@ianmaher
@ryansmith94, Since 'timestamp' is in an ISODate format, which is more efficient than 'statement.timestamp' (which is a string), what is the syntax for using 'timestamp' in the aggregate pipeline? I'm trying to match records within a specific time frame.
devix3
@devix3
@ryansmith94 Because the moodle portal is on a public server hosted by an ISP, but the LL Ubuntu server is inside my lan, to keep all elearning data in house.
So i have to configure the logstore plugin in the moodle external server to send statements to my public ip(maybe on a specific port 8090) and forwarding that port to the LL xApi process listening to 192.168.1.224:8081.
Do you find anything anomalous in this scenario?
devix3
@devix3
@ryansmith94 What is the relationship between LL statements Actors and the People that is possible to add from the LL menu item: People -> Manage ?
I ask this beacause when i go to that LL page, it appears a list of all the Actors of the stored statements, so i guess LL does it automatically and so by default it extracts all the Actors from the stored statements.
But i can add Persons too, from the Manage People page, so which is the real goal of this page?
Does the LL word 'People', refer to the statements Actors?
Manage all the Actors already taken by LL from all the stored statements and so search for one of them, add/remove attributes etc.. or one can also add a Person from scratch, regardless of whether this person is already an Actor of one of the stored statements?
Ryan Smith
@ryansmith94
Hey @ianmaher, you can filter it like this {"timestamp": {"$dte": "2019-01-01" }}
@devix3 I'm just not sure why you would forward from 8090 instead of sending requests to 8081 directly
We have a blog post introducing personas https://www.ht2labs.com/understanding-personas/
devix3
@devix3
@ryansmith94 Because my router/gateway, if i set a port-forwarding using the same public and local port, simply doesn't work.
I'm using the online check tool http://www.portchecktool.com/ and if i set 8081 port, both for the local one and for the public one, the check doesn't pass.
Maybe you are referring to a connection without using port forwarding?
The LL Ubuntu server is in my lan and so it is behind a router to wich an ip has been provided by my ISP.
Do you have any explanation regarding the problem of configuring for the port-forwarding, the local and public port with the same value?
devix3
@devix3

@ryansmith94 What is it for, the api endpoint defined with the location directive inside learninglocker.conf file?
\ # API endpoints
location = /api {
rewrite /api / break;
proxy_redirect off;
proxy_pass http://127.0.0.1:8080;
}

and the SITE_URL value assigned to the 'server_name' directive in the server context:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name SITE_URL;
server_tokens off;
..
}
is the one defined inside .env file in the path /usr/local/learninglocker/release/ll-20191009-.../webapp/, that is just set to 127.0.0.1?
Or it is a value that i can change with any other url, based on my preferences?

Kasi Raj
@kasirajr
If I restart the machine only the UIserver and api are running why is that
Priya1950
@Priya1950
@devix3 Thanks I installed LL
Ryan Smith
@ryansmith94
Hey @devix3. Ah okay fair enough, makes sense. Not sure why they can't be the same value, I've never tried to do that personally
I believe the SITE_URL in the env is just used in the UI on the clients page @devix3
James Mullaney
@ht2
@devix3 The location endpoints for the /api rewrite the URL to remove the /api from it. The API server does not expect that in the URL, instead we just want to point all traffic that has /api at the front to the API port
frogmoses
@frogmoses
Hi, new to Learning Locker. I was able to install it via the directions and was able to start posting and retrieving statements. This is hosted on an EC2 machine with a dynamic ip. When I shut down the EC2 instance and came back to it the next day, I can access the learning locker login page but it say my credentials are incorrect. I know they are the correct credentials. Any hints how to resolve without reinstalling? PM2 says all services are running.
Priya1950
@Priya1950
Why my statements are not reflected in "source" page. The POSTMAN shows the following:
    window.__data={"app":{"RESTRICT_CREATE_ORGANISATION":true,"ENABLE_STATEMENT_DELETION":true}};
          window.rootUrl='http://127.0.0.1:3000';
Davey
@daveym_gitlab
@ryansmith94 Thank you Ryan! Very useful
Davey
@daveym_gitlab
Hi, we have an issue whereby xAPI is taking > 1min to respond to queries. We have no insight into what is causing the issue, or any ability to look inside what's happening within xAPI. Can anyone share any diagnostic and remediation suggestions? Many thanks!
devix3
@devix3
@daveym_gitlab For the first thing, you can do a pm2 logs xAPI, to understand what's happening in the xAPI process.
Then you can work out a solution to the problem.
devix3
@devix3
@Priya1950 If Postman sends a request to Learninglocker and if everything went correctly, it should show a statement id in the response body. The statement id is automatically generated by LL any time a new statement has been delivered to itself.
If this not happens, there is some issue.
Start looking in the xAPI log file, doing a pm2 logs xAPI to see what's happening when you send a statement to LL.
devix3
@devix3
@daveym_gitlab For the first thing, you can do a pm2 logs xAPI, to understand what's happening in the xAPI process.
Then you can work out a solution to the problem.
But, make me understand: after 1 minute is there an outgoing response?
Moreover i think that the query manager process is API and not xAPI, which manages the statements requests, instead, but i'm not sure.
We have to wait for a @ryansmith94 help.
Priya1950
@Priya1950
@devix3 pm2 logs xAPI shows the following:

$ pm2 logs xAPI

In-memory PM2 is out-of-date, do:
$ pm2 update
In memory PM2 version: 4.1.2
Local PM2 version: 4.2.0

[TAILING] Tailing last 15 lines for [xAPI] process (change the value with --lines option)
C:\users\admin\learninglocker\xapi-service\logs\xapi_stderr-6.log last 15 lines:
6|xAPI | (node:2300) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
6|xAPI | (node:2968) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
6|xAPI | (node:12516) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
6|xAPI | (node:7876) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
6|xAPI | (node:14188) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

C:\users\admin\learninglocker\xapi-service\logs\xapi_stdout-6.log last 15 lines:
6|xAPI | 2019-11-25 12:03:43:052 - info: Listening on port 8081
6|xAPI | 2019-11-25 12:03:43:055 - info: Process ready
6|xAPI | 2019-11-25 12:03:44:086 - info: Created new Mongo connection
6|xAPI | 2019-11-25 13:26:12:033 - info: Listening on port 8081
6|xAPI | 2019-11-25 13:26:12:038 - info: Process ready
6|xAPI | 2019-11-25 13:26:13:009 - info: Created new Mongo connection
6|xAPI | 2019-11-26 08:29:31:272 - info: Listening on port 8081
6|xAPI | 2019-11-26 08:29:31:276 - info: Process ready
6|xAPI | 2019-11-26 08:29:32:244 - info: Created new Mongo connection
6|xAPI | 2019-11-30 09:36:44:513 - info: Listening on port 8081
6|xAPI | 2019-11-30 09:36:44:517 - info: Process ready
6|xAPI | 2019-11-30 09:36:45:537 - info: Created new Mongo connection
6|xAPI | 2019-12-03 11:47:22:363 - info: Listening on port 8081
6|xAPI | 2019-12-03 11:47:22:367 - info: Process ready
6|xAPI | 2019-12-03 11:47:23:394 - info: Created new Mongo connection

C:\users\admin\learninglocker\xapi-service\logs\xapi_stdout-5.log last 15 lines:
C:\users\admin\learninglocker\xapi-service\logs\xapi_stderr-5.log last 15 lines:

Davey
@daveym_gitlab
Thanks @devix3 - we observed 2 million requests against our back end DB in the space of 1 day. We are using Azure cosmos with the mongo API.
Ryan Smith
@ryansmith94
@frogmoses that's pretty strange. Check that the database has the user in the users table
@Priya1950 doesn't look like there were any issues with the xAPI process. Are you sure you inserted the statements correctly?
@daveym_gitlab when you say queries are these insert requests or retrieval requests?
Davey
@daveym_gitlab
image.png
both @ryansmith94 as per the image
I watched above video and try to insert statement
Is this correct?
devix3
@devix3
@ryansmith94 Why retrieve lrs data using http connection, if the LL administration app already provides a set of visual tools to retrieve the same data?
I suppose it is useful to integrate the service into its own application or are there other situations where it makes sense to retrieve lrs data using http connection ?
For lrs data entry there are the external LMS's wich generate statements and so http connection is the only way to get those to insert statements into LL.